#
7483c98d |
|
05-Aug-2012 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Debugger (and some friends): 64 bit fixes
|
#
12b1aa81 |
|
11-Dec-2011 |
Rene Gollent <anevilyak@gmail.com> |
Expose the stack pointer and frame pointer via CPUState.
|
#
614e1dc4 |
|
13-Jul-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Register: - Added a type constant describing the format of the register value. - Added flag "is callee-preserved" indicating whether the ABI requires the register to be preserved by a called function. * CpuState: Added SetRegisterValue(), made GetRegisterValue() const. * Added RegisterMap interface for mapping register indices between different models. * Architecture: - Added CreateCpuState() version to create a clean CpuState. - Added GetDwarfRegisterMaps(), which returns to RegisterMaps, converting from and to DWARF register indices. - Added ReadValueFromMemory() reading a value from the target team's memory. The value type is specified by a type constant and the value return via a BVariant. - CreateStackTrace: No longer decide whether to adjust the instruction pointer of the previous CPU state depending on who created the CPU state. Instead compare it with the return address of the next frame. If they are equal it obviously has to be adjusted. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31539 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
840c7653 |
|
24-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added StackFrame classification as syscall frame and added correct identification for x86. * For non-top stack frames adjust the instruction pointer so that it points to the calling function instead of the return address. * SourceView: Consider a syscall frame a non-top frame (the arrow is drawn differently). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31228 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0b60fa86 |
|
20-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added DebuggerInterface::GetSymbolInfos() to get the symbols for an image. * Added the beginnings of the debug info abstraction. Currently we can only load the symbols via the debugger. * Added a job to retrieve debug info for an image. Extended the GetStackTraceJob to support waiting for image debug info to be loaded. * Extended ImageInfo by text/data address and size. * Removed StackFrameX86 and made StackFrame a simple non-polymorphic class featuring all the needed data. The really architecture-dependent is in the referenced CpuState already. Added Image* and FunctionDebugInfo* attributes, referring to the image respectively debug info for the function hit by the instruction pointer. * Switched StrackTrace's StackFrame management from DoublyLinkedList to BObjectList. This makes it more comfortable to use. * Changed the code for creating stack traces: - The creation of the StackTrace object and the main loop to collect the frames are now located in the no longer virtual Architecture::CreateStackTrace(). - The decision how to create a StackFrame is based on the instruction pointer. If it hit a function for which debug info is available, the respective DebugInfo::CreateStackFrame() is used, otherwise we fall back to the new virtual Architecture::CreateStackFrame(). * Adjusted the stack trace view to also show function names (mangled ATM). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31142 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b7c5bd63 |
|
19-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Renamed Variant to BVariant and moved it to libshared.a. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31127 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
15f040e5 |
|
19-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Some work towards getting stack traces: * Added a virtual Architecture::CreateStackTrace() and added a basic implementation in ArchitectureX86. Fleshed out StackTrace/StackFrame a bit and added StackFrameX86. This needs to be organized differently, though, so that we can get the maximum available information for each stack frame, depending on what info is available for the respective function. * Added job to get the stack trace for a thread. * Added stack trace related handling in TeamDebugger. Reorganized the thread state/CPU state/stack trace change handling a bit -- we're using a Team::Listener now, and do things asynchronously. * Added a StackTraceView to display the stack trace of the current thread. No function name available yet, otherwise working fine. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31126 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c42fe1eb |
|
18-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
More work on the architecture abstraction, particularly regarding information about what registers the architecture has and how to get them from the CpuState. Implemented the respective x86 part. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31109 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a81bb42a |
|
18-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Beginnings of the architecture abstraction. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31104 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7483c98dece8f3606fc5d3fd746c0544f7e4b6dd |
|
05-Aug-2012 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Debugger (and some friends): 64 bit fixes
|
#
12b1aa817a215a054db9ff7548ae460eb096125d |
|
11-Dec-2011 |
Rene Gollent <anevilyak@gmail.com> |
Expose the stack pointer and frame pointer via CPUState.
|
#
614e1dc42fb2c04ff44bda621bea500d01d6a4c3 |
|
13-Jul-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Register: - Added a type constant describing the format of the register value. - Added flag "is callee-preserved" indicating whether the ABI requires the register to be preserved by a called function. * CpuState: Added SetRegisterValue(), made GetRegisterValue() const. * Added RegisterMap interface for mapping register indices between different models. * Architecture: - Added CreateCpuState() version to create a clean CpuState. - Added GetDwarfRegisterMaps(), which returns to RegisterMaps, converting from and to DWARF register indices. - Added ReadValueFromMemory() reading a value from the target team's memory. The value type is specified by a type constant and the value return via a BVariant. - CreateStackTrace: No longer decide whether to adjust the instruction pointer of the previous CPU state depending on who created the CPU state. Instead compare it with the return address of the next frame. If they are equal it obviously has to be adjusted. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31539 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
840c76534f7caaca52752d147778a4929e66c361 |
|
24-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added StackFrame classification as syscall frame and added correct identification for x86. * For non-top stack frames adjust the instruction pointer so that it points to the calling function instead of the return address. * SourceView: Consider a syscall frame a non-top frame (the arrow is drawn differently). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31228 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0b60fa86e977411b90631a7a177c4b93c18106e1 |
|
20-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added DebuggerInterface::GetSymbolInfos() to get the symbols for an image. * Added the beginnings of the debug info abstraction. Currently we can only load the symbols via the debugger. * Added a job to retrieve debug info for an image. Extended the GetStackTraceJob to support waiting for image debug info to be loaded. * Extended ImageInfo by text/data address and size. * Removed StackFrameX86 and made StackFrame a simple non-polymorphic class featuring all the needed data. The really architecture-dependent is in the referenced CpuState already. Added Image* and FunctionDebugInfo* attributes, referring to the image respectively debug info for the function hit by the instruction pointer. * Switched StrackTrace's StackFrame management from DoublyLinkedList to BObjectList. This makes it more comfortable to use. * Changed the code for creating stack traces: - The creation of the StackTrace object and the main loop to collect the frames are now located in the no longer virtual Architecture::CreateStackTrace(). - The decision how to create a StackFrame is based on the instruction pointer. If it hit a function for which debug info is available, the respective DebugInfo::CreateStackFrame() is used, otherwise we fall back to the new virtual Architecture::CreateStackFrame(). * Adjusted the stack trace view to also show function names (mangled ATM). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31142 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b7c5bd634b64a6f9407eeb5fa15609e582f86c34 |
|
19-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Renamed Variant to BVariant and moved it to libshared.a. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31127 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
15f040e596308c36903c8381112ef04280b95963 |
|
19-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Some work towards getting stack traces: * Added a virtual Architecture::CreateStackTrace() and added a basic implementation in ArchitectureX86. Fleshed out StackTrace/StackFrame a bit and added StackFrameX86. This needs to be organized differently, though, so that we can get the maximum available information for each stack frame, depending on what info is available for the respective function. * Added job to get the stack trace for a thread. * Added stack trace related handling in TeamDebugger. Reorganized the thread state/CPU state/stack trace change handling a bit -- we're using a Team::Listener now, and do things asynchronously. * Added a StackTraceView to display the stack trace of the current thread. No function name available yet, otherwise working fine. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31126 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c42fe1eb572377d133cc3650e49de2ec76e965a2 |
|
18-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
More work on the architecture abstraction, particularly regarding information about what registers the architecture has and how to get them from the CpuState. Implemented the respective x86 part. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31109 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a81bb42a9321a3b8ccf7f92623237826ff8767f4 |
|
18-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Beginnings of the architecture abstraction. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31104 a95241bf-73f2-0310-859d-f6bbb57e9c96
|