看板 EE_DSnP 關於我們 聯絡資訊
作業二一直卡關 想知道各個變數的變化情況 ddd一直當,所以想用gdb除錯看看 但是,這次的作業main裡面沒有太多東西 大部分都在cmdReader.cpp裡面 試著用"display cmd::..."沒用,都說找不到cmd這個東西 也不知道要怎麼在cmdReader裡面設breakpoint或interrupt 總是只能按ctrl-c然後整個程式就結束了看不到甚麼 請問老師像這種情況該用甚麼指令?怎麼使用debugger? (其實這些問題在ddd裡面也是一樣啦... 現在還是只會使用cout大法除錯 但在這個程式裡會出很多問題... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.227.89.147
ckmarkoh:http://0rz.tw/350Ma http://0rz.tw/f70pF 10/26 16:47
dryman:記得要先隨便設個breakpoint(ex main),run之後才會載入 10/26 16:52
dryman:一些symbol...這時才能設display xxx 10/26 16:52
scuendless:可以設 break CmdParser::函式名稱 之後再用continue 10/26 17:27
scuendless:或step 下去看 10/26 17:27
MrOrz:list CmdReader::readCmd 之類的 可以讓 gdb 顯示該函式 10/26 21:03
MrOrz:這個時候用「b cmdReader.cpp的行號」就可以設中斷點了。 10/26 21:04
MrOrz:例如說我要設中斷點在 cmdReader.cpp 的第201行 10/26 21:05
MrOrz:然後那行在 CmdParser::deleteLine 函式的裡面 10/26 21:06
MrOrz:就在gdb裡 list CmdReader::deleteLine (還可以用tab補齊) 10/26 21:07
MrOrz:然後 b 201 10/26 21:07
MrOrz:run 的時候就會停在 201 行。 10/26 21:07
ric2k1:嗯,有兩種方法設 break point: 10/26 21:10
ric2k1:(1) b <lineNumber> --> 會停在 <lineNumer> 那行 10/26 21:10
ric2k1:(2) b className::memFunc --> 會停在 member function 10/26 21:11
fu3mo6:謝謝大家的回覆!!我找到問題所在了 10/26 22:21
johnjohnlin:印象中 b <file name>:<line number> 也行? 10/26 23:03