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