l i n u x - u s e r s - g r o u p - o f - d a v i s
Next Meeting:
July 7: Social gathering
Next Installfest:
Latest News:
Jun. 14: June LUGOD meeting cancelled
Page last updated:
2002 Jun 18 15:13

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] advanced gdb question
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] advanced gdb question

On Fri, Jun 14, 2002 at 06:58:38PM -0700, Micah Cowan wrote:
> Peter Jay Salzman writes:
>  > hey there,
>  > 
>  > every tutorial on gdb says "compile with -g" within the first few lines.
>  > but what if you don't?  or rather, what if you can't compile with -g?
>  > 
>  > but how do you inspect arguments, local variables, etc. in a given frame
>  > if you don't know the address of these variables because the symbol
>  > table is unavailable?
> Well, without compiling with -g, you obviously don't have the
> convenience of debugging symbols and whatnot - but you should still be
> able to examine the program as raw assembly (hey, it's better than raw
> machine code).
> I just tried it on /bin/echo (stripped).
> You can set the initial breakpoint with: b main
> after beginning the run, you'll be in main, and you can use: disas
> to disassemble the current function. You'll get the whole
> function. You can set breakpoints at specific addresses, and move on
> that way.
> It's a mess, but it's something.
> I'm no gdb expert, so I'm sure someone can offer better advice than
> this...?
> Micah

What you're looking for is a decompiler, such as the
one described in Cifuentes, but they're scarce as
hen's teeth:


Your next option is studying up on your CPU's
instruction set and application binary interface
(ABI) specification, and reading the code.  If you've
got a typical Elf object file, the binary exposes
some symbols to the linker (man objdump -- and it has
a built-in disassembler). At least you'll have the
entry point (as Micah pointed out), the exit call,
and anyplace a library function is called. 

You've got to be seriously motivated to go this
route: I've had decades of practice yet it remains a
major undertaking to debug without a symbol table. 

> what if you can't compile with -g?

Can you explain why not (or is that hypothetical) ?
Maybe you can generate a map file and use that
for your landmarks.

Is hyperthetical the opposite of hypothetical, and
does it have anything to do with coffee?

The US Constitution isn't perfect. But it's better than what we have now.
vox-tech mailing list

LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
Appahost Applications
For a significant contribution towards our projector, and a generous donation to allow us to continue meeting at the Davis Library.