gdb使用: 標準輸入,查看變量,加入調試信息

使用gdb進行程序調試時,如何將標準輸入傳給可執行程序?

假設數據在input.txt當中, 可執行文件名爲myprogram。

$ cat input.txt

this is a test.

  1. $ gdb myprogram // 啓動調試

  2. (gdb) break // 設置斷點

  3. run arg1 arg2 ... < input.txt // 傳入參數,以及輸入數據

  4. n or s //單步調試,n不進入函數,s進入函數

  5. p variable_name //打印變量值

  6. c // 執行至下一斷點


使用gdb進行程序調試時,爲何變量顯示<value optimized out>?

這是因爲在編譯程序時,設置了-O1, -O2, -O3,應該改爲-O0,則變量值可以正常顯示。


如果使用cmake來自動生成Makefile,如何加入調試信息?

設置選項-DCMAKE_BUILD_TYPE=Debug


gdb斷點設置?

1. break file_path/file_name:line_number

2. break file_path/file_name: function_name


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