This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 1/1] [RFC] gdb: corelow: make possible to modify (set) registers for a corefile
- From: "Ulrich Weigand" <uweigand at de dot ibm dot com>
- To: roman dot penyaev at profitbricks dot com (Roman Pen)
- Cc: roman dot penyaev at profitbricks dot com (Roman Pen), palves at redhat dot com (Pedro Alves), dan at codesourcery dot com (Daniel Jacobowitz), jan dot kratochvil at redhat dot com (Jan Kratochvil), gdb-patches at sourceware dot org, stefanha at redhat dot com (Stefan Hajnoczi)
- Date: Tue, 14 Mar 2017 14:14:54 +0100 (CET)
- Subject: Re: [PATCH 1/1] [RFC] gdb: corelow: make possible to modify (set) registers for a corefile
- Authentication-results: sourceware.org; auth=none
Roman Pen wrote:
> Despite the fact that this is a hairy hack this change eases debugging
> of a jmp_buf (setjmp()) and user contexts (makecontext()), which are
> highly used in QEMU project as a part of coroutines.
>
> This change allows setting registers for a corefile, thus QEMU gdb
> script (qemu/scripts/qemugdb/coroutine.py) is allowed to investigate
> backtrace of a preempted coroutine context. Previously only debugging
> of a live process was allowed.
>
> This patch caches all register on a first attempt to modify register
> '(gdb) set $REG = ADDR' and then cached copy is always returned from
> get_core_registers().
>
> This change should not break previous behaviour if nobody sets any
> register, i.e. on each get_core_registers() call registers from a
> corefile will be reread.
I'm wondering why you need that extra copy of the registers;
there already should be a regcache that would be able to hold
any modified values.
It is not currently possible to actually change those values
in the regcache because there is no to_store_registers routine.
But simply adding such a routine that does nothing (just like
to_prepare_to_store in your patch) should hopefully be enough ...
In any case, it would be good to add or extend a test case to
verify that this feature is working as intended.
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU/Linux compilers and toolchain
Ulrich.Weigand@de.ibm.com