看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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
tropical72:再不行請附上 compiler 版本 04/27 01:36
villix:樓上的大大我是用VC2003的,謝謝你的回應>< 04/27 01:40
villix:不過我是希望說Foo裡面就可以往外面抓堆疊抓到 04/27 01:41
villix:像是先Foo然後Main這樣QQ 04/27 01:41
tropical72:那上面這段可行嗎? 04/27 01:43
villix:可行,謝謝^^ 04/27 01:48