help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: crash when calling __builtin_return_address


From: Ulrich Lauther
Subject: Re: crash when calling __builtin_return_address
Date: Thu, 15 Jun 2006 05:37:03 +0000 (UTC)

Paul Pluzhnikov <ppluzhnikov-nsp@charter.net> wrote:
: > I need it to store the program counter at the time
: > when a piece of memory is allocated for reporting later on memory leaks and
: > their origin in my memory manager.

: If it's your own memory manager, just pass the info (e.g. file,
: line) into the allocation routine(s).

that simple solution doesn't help: it would indicate the source line in my
memory manager (always the same), but what I need is that of the *call* to
the allocation routine.

: Alternatively, compile with '-O2 -fno-omit-frame-pointer'

I'll try that. Hopefully it can be done just for the part of the program
involved.

: > Is there another reliable way to access the program counter?

: Yes: don't use __builtin_..._address() with parameter other than 0,
: and use unwind descriptors to find callers. This latter part will
: likely require a couple thousand lines of code (to decode dwarf3
: info). Look in binutils-1.16.x/binutils/readelf.c
: display_debug_frames() to get an idea of what's involved.

If one would write a procedure in assembler, would that have easy access to
the PC?

-- 
        -lauther

[nosave]
----------------------------------------------------------------------------
Ulrich Lauther          ph: +49 89 636 48834 fx: ... 636 42284
Siemens CT SE 6         Internet: Ulrich.Lauther@siemens.com


reply via email to

[Prev in Thread] Current Thread [Next in Thread]