diff options
author | Marcin KoĆcielnicki <koriakin@0x04.net> | 2016-02-18 09:21:38 +0100 |
---|---|---|
committer | Marcin KoĆcielnicki <koriakin@0x04.net> | 2016-02-18 17:21:22 +0100 |
commit | 5f034a78b986d30a90030b2409c61a8660b9b48c (patch) | |
tree | 312e005927c2673b81ad675d0e46e8b6ac5a5cd2 /gdb/gdbarch.sh | |
parent | c304e18e5ca825f57963bd0c5f022fa8f5797b29 (diff) |
gdb: Add guess_tracepoint_registers hook to gdbarch.
When we're looking at a tracefile trace frame where registers are not
available, and the tracepoint has only one location, we supply
the location's address as the PC register. However, this only works
if PC is not a pseudo register, and individual architectures may want
to guess more registers. Add a gdbarch hook that will handle that.
gdb/ChangeLog:
* arch-utils.c (default_guess_tracepoint_registers): New function.
* arch-utils.h (default_guess_tracepoint_registers): New prototype.
* gdbarch.c: Regenerate.
* gdbarch.h: Regenerate.
* gdbarch.sh: Add guess_tracepoint_registers hook.
* tracefile.c (tracefile_fetch_registers): Use the new gdbarch hook.
Diffstat (limited to 'gdb/gdbarch.sh')
-rwxr-xr-x | gdb/gdbarch.sh | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index 4ac6b90fd1..61cb04a719 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -1028,6 +1028,12 @@ m:int:has_shared_address_space:void:::default_has_shared_address_space::0 # True if a fast tracepoint can be set at an address. m:int:fast_tracepoint_valid_at:CORE_ADDR addr, char **msg:addr, msg::default_fast_tracepoint_valid_at::0 +# Guess register state based on tracepoint location. Used for tracepoints +# where no registers have been collected, but there's only one location, +# allowing us to guess the PC value, and perhaps some other registers. +# On entry, regcache has all registers marked as unavailable. +m:void:guess_tracepoint_registers:struct regcache *regcache, CORE_ADDR addr:regcache, addr::default_guess_tracepoint_registers::0 + # Return the "auto" target charset. f:const char *:auto_charset:void::default_auto_charset:default_auto_charset::0 # Return the "auto" target wide charset. |