diff options
author | Philipp Rudo <prudo@linux.vnet.ibm.com> | 2017-02-07 14:17:04 +0100 |
---|---|---|
committer | Andreas Arnez <arnez@linux.vnet.ibm.com> | 2017-02-07 16:25:54 +0100 |
commit | 757186093b40ad3b37962c34294d032b0d88739f (patch) | |
tree | 52ed1fa809f21d635b542a3ef629fb819dad6c81 /gdb/fbsd-tdep.c | |
parent | 75d79af4135482bb3cb4b9c348439c64a8e29ca2 (diff) | |
download | gdb-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