aboutsummaryrefslogtreecommitdiff
path: root/gdb/fbsd-tdep.c
diff options
context:
space:
mode:
authorPhilipp Rudo <prudo@linux.vnet.ibm.com>2017-02-07 14:17:04 +0100
committerAndreas Arnez <arnez@linux.vnet.ibm.com>2017-02-07 16:25:54 +0100
commit757186093b40ad3b37962c34294d032b0d88739f (patch)
tree52ed1fa809f21d635b542a3ef629fb819dad6c81 /gdb/fbsd-tdep.c
parent75d79af4135482bb3cb4b9c348439c64a8e29ca2 (diff)
downloadgdb-757186093b40ad3b37962c34294d032b0d88739f.zip
gdb-757186093b40ad3b37962c34294d032b0d88739f.tar.gz
gdb-757186093b40ad3b37962c34294d032b0d88739f.tar.bz2
Add basic Linux kernel support
This patch implements a basic target_ops for Linux kernel support. In particular it models Linux tasks as GDB threads such that you are able to change to a given thread, get backtraces, disassemble the current frame etc.. Currently the target_ops is designed only to work with static targets, i.e. dumps. Thus it lacks implementation for hooks like to_wait, to_resume or to_store_registers. Furthermore the mapping between a CPU and the task_struct of the running task is only be done once at initialization. See cover letter for a detailed discussion. Nevertheless i made some design decisions different to Peter [1] which are worth discussing. Especially storing the private data in a htab (or std::unordered_map if i had the time...) instead of global variables makes the code much nicer and less memory consuming. [1] https://sourceware.org/ml/gdb-patches/2016-12/msg00382.html gdb/ChangeLog: * gdbarch.sh (lk_init_private): New hook. * gdbarch.h: Regenerated. * gdbarch.c: Regenerated. * lk-low.h: New file. * lk-low.c: New file. * lk-lists.h: New file. * lk-lists.c: New file. * Makefile.in (SFILES, ALLDEPFILES): Add lk-low.c and lk-lists.c. (HFILES_NO_SRCDIR): Add lk-low.h and lk-lists.h. (ALL_TARGET_OBS): Add lk-low.o (COMMON_OBS): Add lk-lists.o
Diffstat (limited to 'gdb/fbsd-tdep.c')
0 files changed, 0 insertions, 0 deletions