看板 EE_DSnP 關於我們 聯絡資訊
gdb對stl支援不太好 不過上網找到了一個不錯的教學:http://0rz.tw/ABcvK 下載.gdbinit,存在~/.gdbinit就行了 要看一個map存放的東西時 語法為pmap <member name> <type first> <type second> 不過gdb對string的支援也不太好 所以要用char*來取代string Ex: (gdb) pmap _cmdMap char* CmdExec* elem[0].left: $21 = 0xa01c124 "HIS" elem[0].right: $22 = (HistoryCmd *) 0xa01c0d8 elem[1].left: $23 = 0xa01c0ac "Q" elem[1].right: $24 = (QuitCmd *) 0xa01c048 Map size = 2 (gdb) 這樣trace bug就比較容易啦~心 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.234
ric2k1:嗯嗯, 應該是蠻有用的, 不過是不是無法 (1) 指定 print 某 11/10 21:42
ric2k1:一個 element, (2) display to watch the changes? 11/10 21:43
ric2k1:除非是像 "graph display $22" 之類的... 11/10 21:43
timrau:根據所提供檔案內容,(1)可以,(2)要看gdb有沒有辦法 11/10 23:21
timrau:進行formatted "display" instead of "print" 11/10 23:21
dryman:(2)不行 不過還好在這個case中stl member都會一直變化 11/10 23:29
dryman:不用一直trace 11/10 23:30
ric2k1:(1) 可以嗎? 哪一個 command, 我怎麼沒看到? 11/10 23:59
timrau:pmap <map> <TypeLeft> <TypeRight> <valLeft> 11/11 07:30
dryman:樓上的<map>=<map member name> 11/11 08:15