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 vger.kernel.org
[mailto:linux-c-programming-owner vger.kernel.org] 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 vger.kernel.org
More majordomo info at http://vge
r.kernel.org/majordomo-info.html
|