游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2283|回复: 7

有什么办法可以让程序知道当前行所在的函数名?

[复制链接]

50

主题

244

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
发表于 2005-9-28 09:00:00 | 显示全部楼层 |阅读模式
如题。 [em2]

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-9-28 12:50:00 | 显示全部楼层

Re:有什么办法可以让程序知道当前行所在的函数名?

__FUNC__宏(我不知道对不对),如果用调试器可以监视堆栈帧。

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2005-9-28 15:17:00 | 显示全部楼层

Re:有什么办法可以让程序知道当前行所在的函数名?

在win下面好像不支持.....以前试过.
有很多方法可以知道,如果在win下面做调试程序的话,上msdn看看dbghelp.dll的使用吧,你想要的函数、栈都有。

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-9-28 22:54:00 | 显示全部楼层

Re:有什么办法可以让程序知道当前行所在的函数名?

那个宏支持支持。不过使用调试器监视堆栈帧更加好一点。。。

50

主题

244

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
 楼主| 发表于 2005-9-29 09:24:00 | 显示全部楼层

Re:有什么办法可以让程序知道当前行所在的函数名?

可能是我表达得不够明白,我的意思是让程序知道啊,而不是让我知道。我想在写错误日志时,让程序把出错的函数名也写进去,不知道各位是否有这方面的经验?

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2005-9-29 10:32:00 | 显示全部楼层

Re:有什么办法可以让程序知道当前行所在的函数名?

晕,当然是程序先知道然后你才知道了,如果你只要函数名的话,可以这样
char c[256] ;
sprintf(c,"%s",__FUNCTION__) ;
g_log(c) ;
这样就行了,但这样做没有什么实际好处,最好把堆栈全导出来,可以看到栈里所有的函数调用情况,这样除错更好,如果用dbghelp的话,还可以直接用.net调试,非常方便.看msdn吧

50

主题

244

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
 楼主| 发表于 2005-9-29 11:05:00 | 显示全部楼层

Re:有什么办法可以让程序知道当前行所在的函数名?

呵呵!十分感谢whb9633,刚好公司里有MSDN,如果还有不明白的地方我再来请教。

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-9-29 13:36:00 | 显示全部楼层

Re:有什么办法可以让程序知道当前行所在的函数名?

whb高手。。。佩服中。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-27 23:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表