#
57893202 |
| 08-Aug-2018 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix #14321.
DIESubprogram: - Adjust to inherit from DIENamespace, as gcc can and will use it as a container in some circumstances.
DIEClassBaseType: - Add accessor for member functions.
Debugger: Fix #14321.
DIESubprogram: - Adjust to inherit from DIENamespace, as gcc can and will use it as a container in some circumstances.
DIEClassBaseType: - Add accessor for member functions.
DwarfImageDebugInfo: - Adjust recursive walking for types to take into account any DIENamespace, not just DW_TAG_namespace specifically. - Factor out adding function to list into a helper. - When retrieving the list of functions, perform a similar recursive walk as is done when building the types table, as some subprograms are apparently not always added to the root compilation unit entry. Curiously, this behavior seems to be relatively specific to a struct/class type declared inside a function in GCC's case, but based on the DWARF spec, there does not appear to be any specific restriction as far as where these can be nested, so be a bit more paranoid to ensure we don't encounter similar cases in the future.
show more ...
|
#
364cbeb2 |
| 17-Mar-2018 |
Rene Gollent <rene@gollent.com> |
Debugger: Adjust type handling with namespaces.
DwarfImageDebugInfo: - In some, but not all cases, gcc5 generates type information where the DIEType is a child of a namespace rather than of its co
Debugger: Adjust type handling with namespaces.
DwarfImageDebugInfo: - In some, but not all cases, gcc5 generates type information where the DIEType is a child of a namespace rather than of its containing compilation unit. This needs to be taken into account when building our name lookup table, as we'll otherwise not find the full definition of such types when attempting to locate them for corresponding variables. Fixes an issue reported by Axel.
show more ...
|
#
ac9e464b |
| 13-Jan-2018 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix various issues in the DWARF subsystem.
AttributeClasses: - Fix typo in get_attribute_name_classes which resulted in us not handling DW_AT_linkage_name properly. - Fix incorrect class
Debugger: Fix various issues in the DWARF subsystem.
AttributeClasses: - Fix typo in get_attribute_name_classes which resulted in us not handling DW_AT_linkage_name properly. - Fix incorrect class specification for DW_AT_default_value due to inconsistencies in the DWARF documentation (the table of attribute classes indicates it is only a reference, but the detailed description indicates it also being possible to be a flag or constant, both of which gcc outputs).
DebugInfoEntries: - Add accessor for DIEClassBaseType's inner types.
DwarfImageDebugInfo: - When looking up types, create a basic target interface to pass on to the type context. Otherwise, type lookups that required DWARF expression evaluation would crash. - When building the type name table, we now recursively walk a class's inner types, and add them to the list as well. This omission would cause the debugger to lack the type description for such classes, and consequently be unable to display their details in the variables view.
show more ...
|
#
b65adbdf |
| 10-Sep-2016 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix #12940.
- Add new interface TeamFunctionSourceInformation. Currently this exposes a single function allowing one to query for the currently active source code given a FunctionDebug
Debugger: Fix #12940.
- Add new interface TeamFunctionSourceInformation. Currently this exposes a single function allowing one to query for the currently active source code given a FunctionDebugInfo instance. - Implement TeamFunctionSourceInformation on TeamDebugInfo. - Pass TeamFunctionSourceInformation to Dwarf{Team,Image}DebugInfo. In turn, make use of it in DwarfImageDebugInfo::GetStatement() in order to determine whether to return the corresponding assembly or source statement.
With this piece of information, the debugger is now correctly able to determine that the user is currently looking at disassembly despite debug info being available, and consequently adjust its stepping behavior based on that. Previously, the source code statement was always used, leading to it not being possible to single step assembly lines in such a circumstance without manually using run to cursor.
Other related cleanups: - TeamDebugInfo now inherits BReferenceable directly, rather than relying on indirectly inheriting it from TeamTypeInformation. - Remove BReferenceable from TeamTypeInformation. The latter is only an interface anyways, and inheriting that base class from multiple locations was causing GCC5 trouble when resolving BReference<TeamDebugInfo>, even when virtual inheritance was used.
show more ...
|
#
fce4895d |
| 29-May-2016 |
Rene Gollent <rene@gollent.com> |
Debugger: Split into core library and application.
- Add subfolder src/kits/debugger which contains the debugger's core functionality and lower layers. Correspondingly add headers/private/debugger
Debugger: Split into core library and application.
- Add subfolder src/kits/debugger which contains the debugger's core functionality and lower layers. Correspondingly add headers/private/debugger for shared headers to be used by clients such as the Debugger application and eventual remote_debug_server. Adjust various files to account for differences as a result of the split and moves. - Add libdebugger.so to minimal Jamfile.
show more ...
|