From: Doug Evans <dje@google.com>
To: Suryansh Kumar <suryansh.1234@gmail.com>
Cc: gdb <gdb@sourceware.org>, Vini Kanvar <vini@cse.iitb.ac.in>
Subject: Re: Print addresses of all local variables
Date: Tue, 23 Jun 2015 15:14:00 -0000 [thread overview]
Message-ID: <CADPb22Sagggdv0TsX-4wRJRT3O-FmxjgAD921w=Hh15shzPnkg@mail.gmail.com> (raw)
In-Reply-To: <CADA370v-0JBveYZ8WsEq2np914uWoU=dtL=XSBy6eFwYy6CsZg@mail.gmail.com>
On Wed, Jun 17, 2015 at 3:55 AM, Suryansh Kumar <suryansh.1234@gmail.com> wrote:
> Print addresses
> ----------------
> I want to print the addresses of all the local and global variables
> which are being used in the current frame and store them in a file.
> "info local" prints the values of all local variables. I need something
> to print the addresses in a similar way. Is there any built in
> command for it?
No, but one might be able to do something in python.
https://sourceware.org/gdb/current/onlinedocs/gdb/Python-API.html
> GDB macro coding language tutorial
> -----------------------------------
> I tried writing a gdb script for the same using the gdb macro coding
> language, but I am not able to find sufficient material for it. Any
> handbook or tutorial on the gdb scripting language which covers its
> usage and syntax in detail is urgently needed. I need to know if we can
> declare arrays and strings, and perform comparisons on them.
gdb's own scripting language is really limited.
Use Python.
There's also Guile support, but the Python support is more complete.
https://sourceware.org/gdb/current/onlinedocs/gdb/Guile.html
> "step" into non-library functions
> ----------------------------------
> I need to store the data at the end of every function when it is
> executed using a gdb script. I am not able to use the 'step' command
> in the script as it also steps into the library functions, which I
> don't need. Need a way to run step conditionally on user functions
> only.
There's no real way to distinguish user from non-user functions.
There are ways to achieve what you want though.
1) The "skip" set of commands.
https://sourceware.org/gdb/current/onlinedocs/gdb/Skipping-Over-Functions-and-Files.html
2) gdb won't step into functions that are missing debug info.
You *could*, though I'm not recommending this as a great approach,
remove the debug info for functions you don't want gdb to step into.
E.g., if you have debug info installed for glibc, temporarily remove it.
prev parent reply other threads:[~2015-06-23 15:14 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-17 8:55 Suryansh Kumar
2015-06-17 9:14 ` Andreas Schwab
[not found] ` <CADA370tyjyMojvqJvtNkWexQKmwWzqGgA+vaDBGCS1fy2vXBfw@mail.gmail.com>
2015-06-23 10:52 ` Fwd: " Suryansh Kumar
2015-06-23 15:14 ` Doug Evans [this message]
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='CADPb22Sagggdv0TsX-4wRJRT3O-FmxjgAD921w=Hh15shzPnkg@mail.gmail.com' \
--to=dje@google.com \
--cc=gdb@sourceware.org \
--cc=suryansh.1234@gmail.com \
--cc=vini@cse.iitb.ac.in \
/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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox