[分享] 除錯好用工具 BOOST_CURRENT_FUNCTION

看板C_and_CPP作者 (小乖)時間13年前 (2011/03/24 09:17), 編輯推噓6(6010)
留言16則, 7人參與, 最新討論串1/1
直接看 code 比較有感覺 #include <boost/current_function.hpp> #include <iostream> using namespace std; int main() { cout << BOOST_CURRENT_FUNCTION << endl; } 在 printf 除錯法當中,若是能夠印出函式名稱,可以減少 trace 的時間。 使用這個工具需要 include boost library。 不過把這個 current_function.hpp 打開來研究,其實類似 C99 的 __func__ 功能, 裡面一堆 macro 指令來判斷哪個版本的 compiler 該用哪些 compiler 指令。 不過我自己在 VS2010 把 BOOST_CURRENT_FUNCTION 替換成 __func__ 編譯不會過, 我就沒有試下去到底 BOOST_CURRENT_FUNCTION 在 VS2010 是對應到哪個指令 XD Have Fun! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.96.34

03/24 10:06, , 1F
好麻煩,我還是用OLLYDBG就好了
03/24 10:06, 1F

03/24 10:13, , 2F
還不錯,要是能內建在C/C++標準就更好了
03/24 10:13, 2F

03/24 10:16, , 3F
原文都說 C99 有啦...
03/24 10:16, 3F

03/24 10:17, , 4F
另外在 Visual 系列叫做 __FUNCTION__
03/24 10:17, 4F

03/24 10:23, , 5F
__FUNCSIG__ 我剛查,在VC可以用這個
03/24 10:23, 5F

03/24 10:24, , 6F
用 2008 測的
03/24 10:24, 6F

03/24 10:24, , 7F
__FUNCSIG__ 連函式簽名都會有 也是可以用啦
03/24 10:24, 7F

03/24 10:25, , 8F
其實還有 __FUNCDNAME__ 回傳裝飾過的名稱 XD
03/24 10:25, 8F

03/24 10:29, , 9F
VC這些定義有沒有列表可以查詢呢?這幾個我都沒見過 XD
03/24 10:29, 9F

03/24 10:30, , 10F
03/24 10:30, 10F

03/24 10:31, , 11F
平常寫程式,還記得會用的就 __cplusplus 跟 _DEBUG 兩個
03/24 10:31, 11F

03/24 10:39, , 12F
感謝!! 這個網頁超重要的 XD
03/24 10:39, 12F

03/24 10:48, , 13F
03/24 10:48, 13F

03/24 10:50, , 14F
剛沒注意到三樓L大推文,試了一下,微軟還是不鳥 C99...
03/24 10:50, 14F

03/24 14:28, , 15F
推 p 大的網頁,這樣就很方便了XD
03/24 14:28, 15F

03/25 02:23, , 16F
gcc也用__FUNCTION__
03/25 02:23, 16F
文章代碼(AID): #1DYfks-G (C_and_CPP)