Bug #18839 2012-12-22 14:18
giles314
watch tree indent incorrect
The debugger produced:
[debug]> output *pAutomaton
[debug](TDragAutomaton) {
[debug] <wxEvtHandler> = {
[debug] <wxObject> = {
[debug] _vptr.wxObject = 0xb2bcc8,
[debug] static ms_classInfo = {
[debug] m_className = 0xae6b3c,
[debug] m_objectSize = 8,
[debug] m_objectConstructor = 0,
[debug] m_baseInfo1 = 0x0,
[debug] m_baseInfo2 = 0x0,
[debug] static sm_first = 0xb88c60,
[debug] m_next = 0xbb6168,
[debug] static sm_classTable = 0x6d033a0
[debug] },
[debug] m_refData = 0x0
[debug] },
[debug] <wxTrackable> = {
[debug] m_first = 0x85480c8
[debug] },
[debug] members of wxEvtHandler:
[debug] static sm_eventTableEntries = {{
[debug] <wxEventTableEntryBase> = {
[debug] m_id = 0,
[debug] m_lastId = 0,
[debug] m_fn = 0x0,
[debug] m_callbackUserData = 0x0
[debug] },
[debug] members of wxEventTableEntry:
[debug] m_eventType = @0xbb62e4
[debug] }},
[debug] static sm_eventTable = {
[debug] baseTable = 0x0,
[debug] entries = 0xbb62d0
[debug] },
[debug] static sm_eventHashTable = {
[debug] m_table = @0xaeaa00,
[debug] m_rebuildHash = false,
[debug] m_size = 31,
[debug] m_eventTypeTable = 0x6d053c0,
[debug] static sm_first = 0xb5a450,
[debug] m_previous = 0xbb5f20,
[debug] m_next = 0x0
[debug] },
[debug] m_nextHandler = 0x84b8580,
[debug] m_previousHandler = 0x0,
[debug] m_dynamicEvents = 0x0,
[debug] m_pendingEvents = 0x0,
[debug] m_pendingEventsLock = {
[debug] {
[debug] m_dummy1 = 111453512,
[debug] m_dummy2 = 0x6a4a548,
[debug] m_buffer = "H¥¤\006ÿÿÿÿ", '\0' <repeats 15 times>
[debug] }
[debug] },
[debug] m_enabled = true,
[debug] {
[debug] m_clientObject = 0x0,
[debug] m_clientData = 0x0
[debug] },
[debug] m_clientDataType = wxClientData_None,
[debug] static ms_filterList = 0x846bce0,
[debug] static ms_classInfo = {
[debug] m_className = 0xaeadc6,
[debug] m_objectSize = 64,
[debug] m_objectConstructor = 0x80bdd0 <wxEvtHandler::wxCreateObject()>,
[debug] m_baseInfo1 = 0xbb6144,
[debug] m_baseInfo2 = 0x0,
[debug] static sm_first = 0xb88c60,
[debug] m_next = 0xbb62fc,
[debug] static sm_classTable = 0x6d033a0
[debug] }
[debug] },
[debug] <IDragAutomaton> = {
[debug] _vptr.IDragAutomaton = 0xb2bd30
[debug] },
[debug] <TDragHelper> = {
[debug] <IDragCallback> = {
[debug] _vptr.IDragCallback = 0xb2bd44
[debug] },
[debug] members of TDragHelper:
[debug] aScrollWindow = 0x84b8580,
[debug] aOrigin = {
[debug] x = 0,
[debug] y = 0
[debug] },
[debug] aXScrollUnit = 1,
[debug] aYScrollUnit = 1,
[debug] aXScrollSpeed = -1163005939,
[debug] aYScrollSpeed = -1163005939,
[debug] aDragOper = -1,
[debug] aObject = 0xbaadf00d,
[debug] aIsDrag = false,
[debug] aIsScrolling = false,
[debug] aEvent = {
[debug] <wxEvent> = {
[debug] <wxObject> = {
[debug] _vptr.wxObject = 0xb26368,
[debug] static ms_classInfo = {
[debug] m_className = 0xae6b3c,
[debug] m_objectSize = 8,
[debug] m_objectConstructor = 0,
[debug] m_baseInfo1 = 0x0,
[debug] m_baseInfo2 = 0x0,
[debug] static sm_first = 0xb88c60,
[debug] m_next = 0xbb6168,
[debug] static sm_classTable = 0x6d033a0
[debug] },
[debug] m_refData = 0x0
[debug] },
[debug] members of wxEvent:
[debug] m_eventObject = 0x0,
[debug] m_eventType = 10006,
[debug] m_timeStamp = 0,
[debug] m_id = 0,
[debug] m_callbackUserData = 0x0,
[debug] m_handlerToProcessOnlyIn = 0x0,
[debug] m_propagationLevel = 0,
[debug] m_skipped = false,
[debug] m_isCommandEvent = false,
[debug] m_wasProcessed = false,
[debug] static ms_classInfo = {
[debug] m_className = 0xaeade0,
[debug] m_objectSize = 40,
[debug] m_objectConstructor = 0,
[debug] m_baseInfo1 = 0xbb6144,
[debug] m_baseInfo2 = 0x0,
[debug] static sm_first = 0xb88c60,
[debug] m_next = 0xbb6258,
[debug] static sm_classTable = 0x6d033a0
[debug] }
[debug] },
[debug] <wxMouseState> = {
[debug] <wxKeyboardState> = {
[debug] m_controlDown = false,
[debug] m_shiftDown = false,
[debug] m_altDown = false,
[debug] m_metaDown = false
[debug] },
[debug] members of wxMouseState:
[debug] m_leftDown = false,
[debug] m_middleDown = false,
[debug] m_rightDown = false,
[debug] m_aux1Down = false,
[debug] m_aux2Down = false,
[debug] m_x = 0,
[debug] m_y = 0
[debug] },
[debug] members of wxMouseEvent:
[debug] m_clickCount = -1,
[debug] m_wheelAxis = wxMOUSE_WHEEL_VERTICAL,
[debug] m_wheelRotation = 0,
[debug] m_wheelDelta = 0,
[debug] m_linesPerAction = 0,
[debug] static ms_classInfo = {
[debug] m_className = 0xaab9b2,
[debug] m_objectSize = 72,
[debug] m_objectConstructor = 0x5e7c3e <wxMouseEvent::wxCreateObject()>,
[debug] m_baseInfo1 = 0xbb6270,
[debug] m_baseInfo2 = 0x0,
[debug] static sm_first = 0xb88c60,
[debug] m_next = 0xb89890,
[debug] static sm_classTable = 0x6d033a0
[debug] }
[debug] },
[debug] aEventHandler = {
[debug] <wxEvtHandler> = {
[debug] <wxObject> = {
[debug] _vptr.wxObject = 0xb57768,
[debug] static ms_classInfo = {
[debug] m_className = 0xae6b3c,
[debug] m_objectSize = 8,
[debug] m_objectConstructor = 0,
[debug] m_baseInfo1 = 0x0,
[debug] m_baseInfo2 = 0x0,
[debug] static sm_first = 0xb88c60,
[debug] m_next = 0xbb6168,
[debug] static sm_classTable = 0x6d033a0
[debug] },
[debug] m_refData = 0x0
[debug] },
[debug] <wxTrackable> = {
[debug] m_first = 0x0
[debug] },
[debug] members of wxEvtHandler:
[debug] static sm_eventTableEntries = {{
[debug] <wxEventTableEntryBase> = {
[debug] m_id = 0,
[debug] m_lastId = 0,
[debug] m_fn = 0x0,
[debug] m_callbackUserData = 0x0
[debug] },
[debug] members of wxEventTableEntry:
[debug] m_eventType = @0xbb62e4
[debug] }},
[debug] static sm_eventTable = {
[debug] baseTable = 0x0,
[debug] entries = 0xbb62d0
[debug] },
[debug] static sm_eventHashTable = {
[debug] m_table = @0xaeaa00,
[debug] m_rebuildHash = false,
[debug] m_size = 31,
[debug] m_eventTypeTable = 0x6d053c0,
[debug] static sm_first = 0xb5a450,
[debug] m_previous = 0xbb5f20,
[debug] m_next = 0x0
[debug] },
[debug] m_nextHandler = 0x0,
[debug] m_previousHandler = 0x0,
[debug] m_dynamicEvents = 0x84c0860,
[debug] m_pendingEvents = 0x0,
[debug] m_pendingEventsLock = {
[debug] {
[debug] m_dummy1 = 111453568,
[debug] m_dummy2 = 0x6a4a580,
[debug] m_buffer = "\200¥¤\006ÿÿÿÿ", '\0' <repeats 15 times>
[debug] }
[debug] },
[debug] m_enabled = true,
[debug] {
[debug] m_clientObject = 0x0,
[debug] m_clientData = 0x0
[debug] },
[debug] m_clientDataType = wxClientData_None,
[debug] static ms_filterList = 0x846bce0,
[debug] static ms_classInfo = {
[debug] m_className = 0xaeadc6,
[debug] m_objectSize = 64,
[debug] m_objectConstructor = 0x80bdd0 <wxEvtHandler::wxCreateObject()>,
[debug] m_baseInfo1 = 0xbb6144,
[debug] m_baseInfo2 = 0x0,
[debug] static sm_first = 0xb88c60,
[debug] m_next = 0xbb62fc,
[debug] static sm_classTable = 0x6d033a0
[debug] }
[debug] },
[debug] members of TDragHelper::TDragEventHandler:
[debug] aOwner = 0x84c0694
[debug] },
[debug] aScrollTimer = {
[debug] <wxEvtHandler> = {
[debug] <wxObject> = {
[debug] _vptr.wxObject = 0xb54228,
[debug] static ms_classInfo = {
[debug] m_className = 0xae6b3c,
[debug] m_objectSize = 8,
[debug] m_objectConstructor = 0,
[debug] m_baseInfo1 = 0x0,
[debug] m_baseInfo2 = 0x0,
[debug] static sm_first = 0xb88c60,
[debug] m_next = 0xbb6168,
[debug] static sm_classTable = 0x6d033a0
[debug] },
[debug] m_refData = 0x0
[debug] },
[debug] <wxTrackable> = {
[debug] m_first = 0x0
[debug] },
[debug] members of wxEvtHandler:
[debug] static sm_eventTableEntries = {{
[debug] <wxEventTableEntryBase> = {
[debug] m_id = 0,
[debug] m_lastId = 0,
[debug] m_fn = 0x0,
[debug] m_callbackUserData = 0x0
[debug] },
[debug] members of wxEventTableEntry:
[debug] m_eventType = @0xbb62e4
[debug] }},
[debug] static sm_eventTable = {
[debug] baseTable = 0x0,
[debug] entries = 0xbb62d0
[debug] },
[debug] static sm_eventHashTable = {
[debug] m_table = @0xaeaa00,
[debug] m_rebuildHash = false,
[debug] m_size = 31,
[debug] m_eventTypeTable = 0x6d053c0,
[debug] static sm_first = 0xb5a450,
[debug] m_previous = 0xbb5f20,
[debug] m_next = 0x0
[debug] },
[debug] m_nextHandler = 0x0,
[debug] m_previousHandler = 0x0,
[debug] m_dynamicEvents = 0x0,
[debug] m_pendingEvents = 0x0,
[debug] m_pendingEventsLock = {
[debug] {
[debug] m_dummy1 = 111453624,
[debug] m_dummy2 = 0x6a4a5b8,
[debug] m_buffer = "¸¥¤\006ÿÿÿÿ", '\0' <repeats 15 times>
[debug] }
[debug] },
[debug] m_enabled = true,
[debug] {
[debug] m_clientObject = 0x0,
[debug] m_clientData = 0x0
[debug] },
[debug] m_clientDataType = wxClientData_None,
[debug] static ms_filterList = 0x846bce0,
[debug] static ms_classInfo = {
[debug] m_className = 0xaeadc6,
[debug] m_objectSize = 64,
[debug] m_objectConstructor = 0x80bdd0 <wxEvtHandler::wxCreateObject()>,
[debug] m_baseInfo1 = 0xbb6144,
[debug] m_baseInfo2 = 0x0,
[debug] static sm_first = 0xb88c60,
[debug] m_next = 0xbb62fc,
[debug] static sm_classTable = 0x6d033a0
[debug] }
[debug] },
[debug] members of wxTimer:
[debug] m_impl = 0x84c07d0
[debug] }
[debug] },
[debug] members of TDragAutomaton:
[debug] aActionee = @0x84b86e0,
[debug] aCurState = dragStateOUT,
[debug] aStateTab = {0x84c01b0, 0x84c09d0, 0x84c09f0, 0x84c0a10, 0x84c0a30},
[debug] aLastCursor = 0x0,
[debug] aObjectID = -1163005939,
[debug] aEnabled = true
[debug]}>>>>>>cb_gdb:
but C::B shows:
- <wxEvtHandle>
+ <wxObject>
+ <wxTrackable>
- static sm_eventTableEntries
- [0]
+ <wxEventTableEntryBase>
- m_eventType
baseTable
entries
+ static sm_eventHashTable
m_nextHandler
m_previousHandler
m_dynamicEvents
m_pendingEvents
+ m_pendingEventsLock
m_enabled
+ [9]
m_clientDataType
static ms_filterList
+ static ms_classInfo
+ <IDragAutomaton>
+ <TDragHelper>
Which is incorrect because (at least):
- The [0] item has not been closed after m_EventType
- The static sm_eventTable has been zapped
- Its members have been transferred to m_EventType while it is not a structure
Those wxWidgets window and event types must be a nightmare to decode!
- Category
- Debugger
- Group
- Status
- Open
- Close date
- Assigned to
- tpetrov