Re: [問題] function name

看板C_and_CPP作者 (藍影)時間14年前 (2011/04/27 01:36), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《villix (瓜子被蜀國的狗吃了)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : c++ : 問題(Question): : 請問有方法可以抓出此堆疊所有的function name嗎 : 補充說明(Supplement): : 網路上面我只有找到__FUNCTION__可以直接印出現在這個function的名稱 : 然後我也有找到backtrace這個,可是這好像一定要linux環境,所以想請問一下 : 大家有沒有什麼好方法可以知道堆疊中的函式名稱,謝謝QQ 剛好前二天在搞這個 XD C++ 我沒試過,Linux 我沒試過, 我試過 dev-c / vc2008 / vc 2010, 無誤 #include <stdio.h> void show_name(char *name){printf("%s\n", name);} void foo(){show_name(__FUNCTION__);} int main() { show_name(__FUNCTION__); foo(); getchar(); return 0; } 據聞, bcb 是 __FUNC__ MSDN 上說明: http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.80).aspx Valid only within a function and returns the undecorated name of the enclosing function (as a string). __FUNCTION__ is not expanded if you use the /EP or /P compiler option. 最後一段話多加留意 -- YouLoveMe() ? LetItBe() : LetMeFree(); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.73.222

04/27 01:36, , 1F
再不行請附上 compiler 版本
04/27 01:36, 1F

04/27 01:40, , 2F
樓上的大大我是用VC2003的,謝謝你的回應><
04/27 01:40, 2F

04/27 01:41, , 3F
不過我是希望說Foo裡面就可以往外面抓堆疊抓到
04/27 01:41, 3F

04/27 01:41, , 4F
像是先Foo然後Main這樣QQ
04/27 01:41, 4F

04/27 01:43, , 5F
那上面這段可行嗎?
04/27 01:43, 5F

04/27 01:48, , 6F
可行,謝謝^^
04/27 01:48, 6F
文章代碼(AID): #1DjmA6u_ (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #1DjmA6u_ (C_and_CPP)