On Tue, Oct 27, 2009 at 12:37 PM, Daniel Jacobowitz <d...@false.org> wrote:
> On Tue, Oct 27, 2009 at 12:33:39PM -0700, Bruce Korb wrote:
>> Exactly.  I know it'd be some work.  I think I need to
>> call:  dlopen(NULL, RTLD_NOW)
>
> No.  You need to open the file and have your own ELF and symbol table
> reader.  They are not in the area mapped by dlopen.

OK.  Still not terribly hard:

    {
        static char const exe_fmt[] =
            "/proc/%d/exe";
        char bf[sizeof (exe_fmt) + 12];
        sprintf(bf, exe_fmt, getpid());
        path_len = readlink(bf, exe_path, sizeof (exe_path) - 1);
    }

(This is for Linux only...)

> GDB is almost certainly not where you want to get this code from.  We
> just use BFD...

Ah!  There we go.  That's what I was looking for.  Thank you!


Reply via email to