docs: document breakpoint and watchpoint support
This varies by accelerator. Also mention the modern bear trap that is ASLR. Message-Id: <20230503091244.1450613-4-alex.bennee@linaro.org> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
This commit is contained in:
parent
3217b84f3c
commit
ab9d29b0a4
@ -46,6 +46,28 @@ Here are some useful tips in order to use gdb on system code:
|
|||||||
3. Use ``set architecture i8086`` to dump 16 bit code. Then use
|
3. Use ``set architecture i8086`` to dump 16 bit code. Then use
|
||||||
``x/10i $cs*16+$eip`` to dump the code at the PC position.
|
``x/10i $cs*16+$eip`` to dump the code at the PC position.
|
||||||
|
|
||||||
|
Breakpoint and Watchpoint support
|
||||||
|
=================================
|
||||||
|
|
||||||
|
While GDB can always fall back to inserting breakpoints into memory
|
||||||
|
(if writable) other features are very much dependent on support of the
|
||||||
|
accelerator. For TCG system emulation we advertise an infinite number
|
||||||
|
of hardware assisted breakpoints and watchpoints. For other
|
||||||
|
accelerators it will depend on if support has been added (see
|
||||||
|
supports_guest_debug and related hooks in AccelOpsClass).
|
||||||
|
|
||||||
|
As TCG cannot track all memory accesses in user-mode there is no
|
||||||
|
support for watchpoints.
|
||||||
|
|
||||||
|
Relocating code
|
||||||
|
---------------
|
||||||
|
|
||||||
|
On modern kernels confusion can be caused by code being relocated by
|
||||||
|
features such as address space layout randomisation. To avoid
|
||||||
|
confusion when debugging such things you either need to update gdb's
|
||||||
|
view of where things are in memory or perhaps more trivially disable
|
||||||
|
ASLR when booting the system.
|
||||||
|
|
||||||
Debugging multicore machines
|
Debugging multicore machines
|
||||||
============================
|
============================
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user