all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Skip Montanaro <skip.montanaro@gmail.com>
To: Help GNU Emacs <help-gnu-emacs@gnu.org>
Subject: Executing Emacs commands when a gdb breakpoint is hit
Date: Tue, 21 Jan 2020 12:02:49 -0600	[thread overview]
Message-ID: <CANc-5UypWw3bGkgqZ0McHBs15oMu1vrsPzrkzc4HfJ9y6tRH4w@mail.gmail.com> (raw)

It's straightforward to create user-defined GDB commands which trigger upon
hitting a breakpoint. I'd like to also execute some ELisp though. That
seems not so obvious. Is this doable?

Here's a concrete example. I'm working on the Python bytecode compiler. The
primary compiler struct contains the name of the file being compiled (along
with much other stuff), and one of its fields refers to a compile_unit
which holds the current line number of the Python file as the compilation
progresses.

The compiler_setlineno function is a perfect place to break. I'd like to
switch to the buffer holding the file being compiled and set point to the
current line number, thus updating my view of the where the compilation is.

On a more basic topic, I actually seem unable to cleanly terminate the
series of commands to execute upon hitting a breakpoint. For example, this
is what I see now (within an Emacs *gud-python* buffer):

(gdb) comm 2
Type commands for breakpoint(s) 2, one per line.
End with a line saying just "end".
>p c->c_filename
>p c->u->u_lineno
>end
>
>end
>  C-c C-cQuit

That is, I do what it says, end with a line saying just "end", but it
doesn't terminate. After trying that a second time, I gave up and I broke
back to the (gdb) prompt with C-c C-c. Seems like a bug to me. I'm using
25.2.2 on Ubuntu 18.04.

Skip


             reply	other threads:[~2020-01-21 18:02 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-21 18:02 Skip Montanaro [this message]
2020-01-21 18:39 ` Executing Emacs commands when a gdb breakpoint is hit Eli Zaretskii
2020-01-22 13:48   ` Skip Montanaro
2020-01-22 17:04     ` Eli Zaretskii
2020-01-22 19:55       ` otadmor .
2020-01-22 21:07       ` Skip Montanaro
2020-01-23 14:45         ` Eli Zaretskii
2020-01-23 21:00           ` Skip Montanaro
2020-01-24  8:01             ` Eli Zaretskii
2020-04-07 20:21               ` otadmor .

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CANc-5UypWw3bGkgqZ0McHBs15oMu1vrsPzrkzc4HfJ9y6tRH4w@mail.gmail.com \
    --to=skip.montanaro@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.