#
c7ca91ff |
|
28-Dec-2012 |
Rene Gollent <anevilyak@gmail.com> |
Add helper functions for creating return value variables.
|
#
0573015d |
|
20-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
Introduce a flag in ExpressionEvaluationContext in order to distinguish between cases where no object pointer is available vs the object pointer being present but NULL, which would previously not be pushed onto the stack, leading to expression evaluation failures. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42274 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c3e066cf |
|
16-Dec-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Replaced uses of obsolescent BReference[able] API. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39869 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3a1ce93b |
|
11-Nov-2010 |
Rene Gollent <anevilyak@gmail.com> |
When computing absolute addresses, take the image relocation delta into account. Fixes retrieving the addresses and consequently values of static variables. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39407 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d054be0d |
|
09-Oct-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Moved the data location resolution methods from StackFrameDebugInfo to the respective Type classes. StackFrameDebugInfo is pretty much out of work now, but maybe something comes up later. * Renamed GlobalTypeLookupContext to GlobalTypeCache and renamed its methods. * A TeamDebugInfo does now have a GlobalTypeCache which is used for resolving types. Formerly it was created per stack frame, so all types had to be resolved after each single step. Single-stepping is usably fast again. The disadvantage is that DWARF theoretically allows types properties to depend on instruction/frame/frame base pointer and we don't support that anymore. I can't think of a reasonable application for that feature, though. * Refactored DwarfStackFrameDebugInfo: - Moved the type classes into new DwarfTypes.{h,cpp}. - Moved the creation of types into new class DwarfTypeFactory. - Added class DwarfTypeContext which bundles all the dependencies of the type classes. * Made DwarfFile a BReferenceable. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33495 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
71f75cdc |
|
06-Oct-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* WIP regarding non comilation unit local types: - Introduced GlobalTypeLookup interface and GlobalTypeLookupContext to look up types by name and cache them. - TeamDebugInfo implementes GlobalTypeLookup iterating through all ImageDebugInfos, which in turn iterate through all SpecificImageDebugInfos. - DwarfImageDebugInfo iterates through all compilation units, using a temporary DwarfStackFrameDebugInfo to create the type. - DwarfStackFrameDebugInfo no longer caches the types itself, but uses GlobalTypeLookupContext. It uses GlobalTypeLookup to look up types not defined in the compilation unit. - DwarfFile: Made expression evaluation more robust, so that it also works, when no subroutine entry, frame pointer, and instruction pointer are available (and not used by the expression). Basically works already, although the wrong compilation unit might be used when resolving values for global types. It's also horribly slow, when there are many types in the stack frame. * DwarfStackFrameDebugInfo::ResolveArrayElementLocation(): The element location piece size was set incorrectly (multiplied by 8, although bytes were expected). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33477 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e10cb283 |
|
04-Oct-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* ArrayIndexPath::SetTo(): Changed return type from bool to status_t. * Finished support for retrieving and displaying array element values. * Added work-around for pointer types, if the base type isn't specified in the debug info (as it should per specification). * Added support for unspecified types, function types, and pointer to member types. All types relevant for C++ should be supported now. There are still quite a few TODOs, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33434 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
84153f2c |
|
01-Oct-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Fixed typos in comparisons. * Some more output on error. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33394 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e82b4941 |
|
26-Sep-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* ValueLocation: - Changed the bit{Offset,Size} semantics. It's now more or less aligned with the semantics of the respective DWARF DIE attributes. DwarfStackFrameDebugInfo does now correctly translate the ValueLocations returned by the DWARF layer (the bit piece location expression semantics is different for some reason). - ValueLocation is now aware of the target's endianess. The SetTo() method needs that information to correctly meddle with the pieces. - Support normalizing the pieces. * Fixed retrieving the values of bit fields in various places. We still don't handle the bit offset/size attributes of types correctly, but I haven't seen those in actual debug info yet. * Added support for enumerations. The variable view shows the enumerator names, when available. * Added partial support for subrange types. C++ doesn't have those -- we only need them for array dimensions. * Started adding support for array types. Still work in progress. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33314 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6e72ebfc |
|
20-Sep-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* More work on retrieving local variable values. Address and compound types can now be inspected. Still work in progress -- bit fields and arrays don't work correctly yet nor does type lookup beyond the current compilation unit. * Made most of the debugger output configurable via a config header. By default it's much less noisy now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33217 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0573015d14887ade1a081baa04dcb7f8da8d19b7 |
|
20-Jun-2011 |
Rene Gollent <anevilyak@gmail.com> |
Introduce a flag in ExpressionEvaluationContext in order to distinguish between cases where no object pointer is available vs the object pointer being present but NULL, which would previously not be pushed onto the stack, leading to expression evaluation failures. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42274 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c3e066cf6d35a86d29396d4e740f9811e506b66c |
|
16-Dec-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Replaced uses of obsolescent BReference[able] API. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39869 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3a1ce93bc72bfa23e0f46642c256aa735fb80426 |
|
11-Nov-2010 |
Rene Gollent <anevilyak@gmail.com> |
When computing absolute addresses, take the image relocation delta into account. Fixes retrieving the addresses and consequently values of static variables. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39407 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d054be0d8c41431d611f41171232b0f75ec6f30f |
|
09-Oct-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Moved the data location resolution methods from StackFrameDebugInfo to the respective Type classes. StackFrameDebugInfo is pretty much out of work now, but maybe something comes up later. * Renamed GlobalTypeLookupContext to GlobalTypeCache and renamed its methods. * A TeamDebugInfo does now have a GlobalTypeCache which is used for resolving types. Formerly it was created per stack frame, so all types had to be resolved after each single step. Single-stepping is usably fast again. The disadvantage is that DWARF theoretically allows types properties to depend on instruction/frame/frame base pointer and we don't support that anymore. I can't think of a reasonable application for that feature, though. * Refactored DwarfStackFrameDebugInfo: - Moved the type classes into new DwarfTypes.{h,cpp}. - Moved the creation of types into new class DwarfTypeFactory. - Added class DwarfTypeContext which bundles all the dependencies of the type classes. * Made DwarfFile a BReferenceable. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33495 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
71f75cdcdee748eb5e0841f8868ab8f477c0ee75 |
|
06-Oct-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* WIP regarding non comilation unit local types: - Introduced GlobalTypeLookup interface and GlobalTypeLookupContext to look up types by name and cache them. - TeamDebugInfo implementes GlobalTypeLookup iterating through all ImageDebugInfos, which in turn iterate through all SpecificImageDebugInfos. - DwarfImageDebugInfo iterates through all compilation units, using a temporary DwarfStackFrameDebugInfo to create the type. - DwarfStackFrameDebugInfo no longer caches the types itself, but uses GlobalTypeLookupContext. It uses GlobalTypeLookup to look up types not defined in the compilation unit. - DwarfFile: Made expression evaluation more robust, so that it also works, when no subroutine entry, frame pointer, and instruction pointer are available (and not used by the expression). Basically works already, although the wrong compilation unit might be used when resolving values for global types. It's also horribly slow, when there are many types in the stack frame. * DwarfStackFrameDebugInfo::ResolveArrayElementLocation(): The element location piece size was set incorrectly (multiplied by 8, although bytes were expected). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33477 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e10cb2838bcccb986e830cff4c1569ea26d32641 |
|
04-Oct-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* ArrayIndexPath::SetTo(): Changed return type from bool to status_t. * Finished support for retrieving and displaying array element values. * Added work-around for pointer types, if the base type isn't specified in the debug info (as it should per specification). * Added support for unspecified types, function types, and pointer to member types. All types relevant for C++ should be supported now. There are still quite a few TODOs, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33434 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
84153f2c5717e591329782c5178ea084fb447e96 |
|
01-Oct-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Fixed typos in comparisons. * Some more output on error. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33394 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e82b494112f921f214e2ff6604ddfba1e2ef63a9 |
|
26-Sep-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* ValueLocation: - Changed the bit{Offset,Size} semantics. It's now more or less aligned with the semantics of the respective DWARF DIE attributes. DwarfStackFrameDebugInfo does now correctly translate the ValueLocations returned by the DWARF layer (the bit piece location expression semantics is different for some reason). - ValueLocation is now aware of the target's endianess. The SetTo() method needs that information to correctly meddle with the pieces. - Support normalizing the pieces. * Fixed retrieving the values of bit fields in various places. We still don't handle the bit offset/size attributes of types correctly, but I haven't seen those in actual debug info yet. * Added support for enumerations. The variable view shows the enumerator names, when available. * Added partial support for subrange types. C++ doesn't have those -- we only need them for array dimensions. * Started adding support for array types. Still work in progress. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33314 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6e72ebfce3cb4969f9b27b4210d7631ba16948fa |
|
20-Sep-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* More work on retrieving local variable values. Address and compound types can now be inspected. Still work in progress -- bit fields and arrays don't work correctly yet nor does type lookup beyond the current compilation unit. * Made most of the debugger output configurable via a config header. By default it's much less noisy now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33217 a95241bf-73f2-0310-859d-f6bbb57e9c96
|