cmake and gdb

轉載:http://blog.csdn.net/wfing/archive/2010/06/09/5659086.aspx

 

1.  cmake支持gdb的實現,
首先在CMakeLists.txt下加入
SET(CMAKE_BUILD_TYPE "Debug")
在下面加入:
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
原因是CMake 中有一個變量 CMAKE_BUILD_TYPE ,可以的取值是 Debug Release RelWithDebInfo >和 MinSizeRel。
當這個變量值爲 Debug 的時候,CMake 會使用變量 CMAKE_CXX_FLAGS_DEBUG 和 CMAKE_C_FLAGS_DEBUG 中的字符串作爲編譯選項生成 Makefile;


2.  在GDB中間加入程序啓動參數
比如我們需要調試一個可執行文件./a.out help
這時
$gdb ./a.out
進入到gdb的命令行模式下,然後:
(gdb) set args help
就能加上可執行文件需要的參數,如果要看argc[1]到argc[N]的參數,只需要
(gdb) show args

3. gdb中查看字符串,地址的操作,數據類型
比始有一個int型的變量i,相要知道他的相關信息,可以
(gdb) print i
打印出變量i的當前值
(gdb)x &i
與上面的命令等價。

如果有x命令看時,需要看一片內存區域,(如果某個地方的值爲0,用x時會自動截斷了)
(gdb) x/16bx address
單字節16進制打印address地址處的長度爲16的空間的內存,16表示空間長度,不是16進制,x表示16進制,b表示byte單字節

gdb看變量是哪個數據類型
(gdb) whatis i
即可知道i是什麼類型的變量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章