This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Print addresses of all local variables


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]