RE: Where to find definition for __FUNCTION__ macro

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

 



My understanding is that __FUNCTION__ is substituted at compile time. So
__FUNCTION__ doesn't run anything, it's just a string, like __FILE__ or
__LINE__.

shorty

-----Original Message-----
From: linux-c-programming-owner@xxxxxxxxxxxxxxx
[mailto:linux-c-programming-owner@xxxxxxxxxxxxxxx] On Behalf Of Glynn
Clements
Sent: Wednesday, 23 August 2006 9:12 PM


Shriek wrote:

> Alright, I might just as well present my problem here... I am trying
> to debug some call back handlers which are actualy registered as
> function pointers at boot time for a router, now lets say there is  a
> central notification framework and looking at the msg-type it calls a
> specific handler, so there is some statement like
> 
>                ev_msg_handlers[msg->rtsm_type].
> So I was thinking if I could get the internals of the __FUNCTION__
> macro and if my assumption that it looks it up in system map then I
> could possibly attempt to modify it so as to accept the handler
> address and return the function name it is entering ... what say ???

__FUNCTION__ won't help you here.

You need to be able to read either the executable's symbol table (for
a dynamically-linked executable) or its debug information (for an
executable with debug info). For a statically-linked executable with
no debug info, it's impossible; the function's names simply don't
exist anywhere at run-time.

I'd suggest looking at the source code for "nm" for details on reading
symbol information.

-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Assembler]     [Git]     [Kernel List]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [C Programming]     [Yosemite Campsites]     [Yosemite News]     [GCC Help]

  Powered by Linux