大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
获取不到,函数名在连接时被替换成函数入口地址,实际运行的程序中通常不存在函数名(PE文件如果有函数导出表则导出表中可能会记录函数名)。变量名同理。
成都创新互联-专业网站定制、快速模板网站建设、高性价比凌云网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式凌云网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖凌云地区。费用合理售后完善,十载实体公司更值得信赖。
可以做到的,参考一下backtrace_symbols的实现以及相关原理,这里面比较复杂,也比较底层,一两句话说不清楚
你要是想通过_FUNCTION_这种方式来搞的话,可以通过如下方式:
#define m_fun(args) fun(__FILE__,__LINE__, args)
进行相应的替换即可
#include stdio.h
void f()
{
}
void main()
{
printf("%u\n", f);
printf("%u\n", f);
printf("%p\n", f);
}
主函数中前两行%u表示输出无符号的十进制,而第三行%p表示输出地址,其结果是一个十六进制的数,你将其转换成十进制,你会发现与前两行结果一样。