8 Commits

Author SHA1 Message Date
Ingo Weinhold
0b60fa86e9 * 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
2009-06-20 17:20:49 +00:00
Philippe Houdoin
ec1b789c2e DebuggerInterface destructor wasn't virtual, raising a -Werror warning.
Fixed libdebug.so link.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-20 08:52:51 +00:00
Ingo Weinhold
1ae2cffc83 Added ReadMemory().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-19 21:58:48 +00:00
Ingo Weinhold
c42fe1eb57 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
2009-06-19 00:05:45 +00:00
Ingo Weinhold
3c4cb05b95 We can't only use a single debug context, if we want to allow multiple threads
to play with us without blocking. Implemented a pool of debug contexts instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-18 22:37:16 +00:00
Ingo Weinhold
b6aff5aa83 * Added notifications for thread state/CPU state/stack trace changes. The team
window listens for those and updates the buttons correctly.
* Added basic handling for the thread stopping debug events in the team
  debugger.
* Forward the thread run/stop/step requests to the team debugger and actually
  run/stop/step the thread. Running/stopping works, all three stepping actions
  just step by a single instruction ATM, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-18 21:45:14 +00:00
Ingo Weinhold
a81bb42a93 Beginnings of the architecture abstraction.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-18 19:57:46 +00:00
Ingo Weinhold
f208695cc1 Moved all interaction with the kernel/debugger interface into new class
DebuggerInterface. This will simplify adding support for remote debugging
eventually.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-18 17:57:37 +00:00