History log of /haiku-fatelf/src/apps/debugger/debugger_interface/DebuggerInterface.cpp
Revision Date Author Comments
# c8d82cf6 19-Dec-2012 Alex Smith <alex@alex-smith.me.uk>

Started adding x86_64 support to Debugger.

Stack tracing doesn't work yet, nor does single stepping (somehow
manages to completely freeze the system).


# 35cadd6f 05-Nov-2012 Rene Gollent <anevilyak@gmail.com>

Add watchpoint support in DebuggerInterface.


# 6e3918fa 08-Aug-2012 Rene Gollent <anevilyak@gmail.com>

Don't release reference if we don't have one.

Fixes a crash seen if Debugger was run on an unsupported architecture, e.g.
x86-64 (for now).


# 7483c98d 05-Aug-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger (and some friends): 64 bit fixes


# 36914962 10-Jul-2012 Rene Gollent <anevilyak@gmail.com>

Fix #8709.

- The buffer that the debugger used to retrieve messages from
the debug port was slightly too small for the largest of the message
data structs (currently 1100 bytes), causing some types of debug events
to get truncated. This resulted in image creation/deletion events being
received with a truncated image_info struct, which would result in several
fields being returned with random values, most notably the text/data base
and size fields. Consequently, searching those images for an address within
them would fail, leading to #8709. It's possible but not yet confirmed
that this bug is also responsible for #8710, need to test further.


# 6a5ce301 15-May-2011 Oliver Tappe <zooey@hirschkaefer.de>

Move functions declared in private/system/system_info.h out of the public namespace.
* prepend private functions get_system_info_etc(), start_watching_system() and
stop_watching_system() with '__'
* adjust callers accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41517 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 11e3001c 16-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Cleanup: multiplex debug and system watch messages across a single port.
Simplify accordingly.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39875 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d23cadce 16-Dec-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

[_{kern,user}_]{start,stop}_system_watching()
-> [_{kern,user}_]{start,stop}_watching_system()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39872 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


# e37327bd 15-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Check for port deletion.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39868 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 892f9442 15-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Slight refactoring. Also, always process all waiting debugger events before any
system watch events, since otherwise there's a potential race where we might
try to process a thread rename before having processed the notification for
that thread's creation.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39867 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ba3f23c6 15-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Re-implement watching for thread name changes via the new thread
property change notification interface.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39866 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 27a115f6 14-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Revert r39846 and r39847.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39849 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8fb7eb8b 13-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Implement support for catching rename and thread priority change events.
This lets us keep up to date with thread names, which makes, for example
Tracker a bit more tolerable to debug since it employs thread renaming
to set the names of its windows.

Implements #4430.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39847 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8d8864e1 13-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Add WriteMemory hooks to TeamMemory / DebuggerInterface to go with ReadMemory.
Will be used in the (eventual) memory inspection tool.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39844 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9b10dea 03-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Extended ImageInfo and Image so they know the image type.
* Added DebuggerInterface::GetSymbolInfo().
* Implementing stopping the thread in main() when the debugger started the
debugged program.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31393 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fef6a27d 23-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved killing/resuming the team to DebuggerInterface::Close().
* Made the TeamDebugger safer for the case that the initialization failed early.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31218 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c439b23 22-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added {Install,Uninstall}Breakpoint().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31188 a95241bf-73f2-0310-859d-f6bbb57e9c96


# faa04e8d 21-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Also return the "commpage" image as one of the team's images.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31171 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


# 1ae2cffc 19-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added ReadMemory().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31125 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


# 3c4cb05b 18-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

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


# b6aff5aa 18-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* 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


# 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


# f208695c 18-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

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


# 35cadd6f3cda83bfd58be558ce287157acc9174e 05-Nov-2012 Rene Gollent <anevilyak@gmail.com>

Add watchpoint support in DebuggerInterface.


# 6e3918fa63cf2657089ccb2eccc3820ab3e1f86e 08-Aug-2012 Rene Gollent <anevilyak@gmail.com>

Don't release reference if we don't have one.

Fixes a crash seen if Debugger was run on an unsupported architecture, e.g.
x86-64 (for now).


# 7483c98dece8f3606fc5d3fd746c0544f7e4b6dd 05-Aug-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

Debugger (and some friends): 64 bit fixes


# 369149622268fa194fc43e15b4f6889db15949c6 10-Jul-2012 Rene Gollent <anevilyak@gmail.com>

Fix #8709.

- The buffer that the debugger used to retrieve messages from
the debug port was slightly too small for the largest of the message
data structs (currently 1100 bytes), causing some types of debug events
to get truncated. This resulted in image creation/deletion events being
received with a truncated image_info struct, which would result in several
fields being returned with random values, most notably the text/data base
and size fields. Consequently, searching those images for an address within
them would fail, leading to #8709. It's possible but not yet confirmed
that this bug is also responsible for #8710, need to test further.


# 6a5ce301209d871e4c675fe9518315830ab71733 15-May-2011 Oliver Tappe <zooey@hirschkaefer.de>

Move functions declared in private/system/system_info.h out of the public namespace.
* prepend private functions get_system_info_etc(), start_watching_system() and
stop_watching_system() with '__'
* adjust callers accordingly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41517 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 11e3001c3f385198fb783a7a135da9116ce5f1ff 16-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Cleanup: multiplex debug and system watch messages across a single port.
Simplify accordingly.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39875 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d23cadce4cdbd4e891a2aedf4f82f252f71d2461 16-Dec-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

[_{kern,user}_]{start,stop}_system_watching()
-> [_{kern,user}_]{start,stop}_watching_system()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39872 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


# e37327bd6bb8196ccc6e6aabdce7935bbb7bc86e 15-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Check for port deletion.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39868 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 892f94425130fb65a005fad87a259626509b8b7e 15-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Slight refactoring. Also, always process all waiting debugger events before any
system watch events, since otherwise there's a potential race where we might
try to process a thread rename before having processed the notification for
that thread's creation.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39867 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ba3f23c6366342798a0f61b7767e7533ebfdc0b4 15-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Re-implement watching for thread name changes via the new thread
property change notification interface.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39866 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 27a115f6685cc7821dd2ab6d528d6f3abe70158d 14-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Revert r39846 and r39847.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39849 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8fb7eb8b17ab5d027a896e393b057cc6939dc78c 13-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Implement support for catching rename and thread priority change events.
This lets us keep up to date with thread names, which makes, for example
Tracker a bit more tolerable to debug since it employs thread renaming
to set the names of its windows.

Implements #4430.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39847 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8d8864e1626664bbcb0a9b1c626e63bb1983f0e3 13-Dec-2010 Rene Gollent <anevilyak@gmail.com>

Add WriteMemory hooks to TeamMemory / DebuggerInterface to go with ReadMemory.
Will be used in the (eventual) memory inspection tool.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39844 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9b10dea3bc62910fc0123a9751a4fa1c8b98f69 03-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Extended ImageInfo and Image so they know the image type.
* Added DebuggerInterface::GetSymbolInfo().
* Implementing stopping the thread in main() when the debugger started the
debugged program.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31393 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fef6a27d78eed65615cb7887a40bbcaebe12dbe9 23-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Moved killing/resuming the team to DebuggerInterface::Close().
* Made the TeamDebugger safer for the case that the initialization failed early.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31218 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c439b2356b4021429a4365c014c8e128744db10 22-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added {Install,Uninstall}Breakpoint().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31188 a95241bf-73f2-0310-859d-f6bbb57e9c96


# faa04e8d936df8e8688f7945d1a209086429cdd4 21-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Also return the "commpage" image as one of the team's images.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31171 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


# 1ae2cffc834bf6a53bac6b1f4b01c2fa749f99fa 19-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added ReadMemory().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31125 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


# 3c4cb05b95cb1c9d6f097ddb505679e718eb71da 18-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

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


# b6aff5aa83398d3958c35345bc843abd299d3af7 18-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* 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


# 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


# f208695cc18a91def34ea8118ce608f5b344a2d9 18-Jun-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

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