linux系统下C语言写了一个函数,我想在这个函数里面打印出调用这个函数的文件的文件名和调用所在行的行号

liujie2300 2011-10-27 02:25:30
linux系统下C语言写了一个函数,我想在这个函数里面打印出调用这个函数的文件的文件名和调用所在行的行号。
请不要告诉我用__FILE__和__LINE__宏,他们只能得到自己所在的文件名和行号,无法得到调用方的文件名和行号。
最好写个小程序 呵呵,谢谢了啊 在线等
...全文
368 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yel617 2011-10-27
  • 打赏
  • 举报
回复
过来学习
薛定谔之死猫 2011-10-27
  • 打赏
  • 举报
回复
把那两个宏作为函数参数传进去,你可以将其定义为宏,debug时候使用参数,release时去除参数
恨天低 2011-10-27
  • 打赏
  • 举报
回复
嘿嘿,你gdb调试的时候,用backtrace命令。。
qq120848369 2011-10-27
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>

int main()
{
printf("File:%s,Line:%u\n",__FILE__,__LINE__);
return 0;
}
liujie2300 2011-10-27
  • 打赏
  • 举报
回复
#define m_fun(args) fun(__FILE__,__LINE__, args) 这个思路是对的,但我还是看不明白,是个编程新手,希望大家指点下!就写个小的C程序就行
liujie2300 2011-10-27
  • 打赏
  • 举报
回复
这个思路有点绕 ,好像用函数的宏替换可以实现 ,但是我不知道该怎么用!求个小程序给个例子!很急哇!
hulongchuan 2011-10-27
  • 打赏
  • 举报
回复
system("grep '函数名' 工程路径 -rn > record.txt");
执行完这个命令然后从record.txt文件中提取你想要的
liujie2300 2011-10-27
  • 打赏
  • 举报
回复
谁在线啊 给个答案 谢谢了啊

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧