gdb:循環打印數組

  今天爲了精確查看集羣中哈希表中每個機器佔有的槽位數,所以需要在gdb中進行統計。哈希表是一個大的數組,如果直接使用gdb輸出數量太大,而且沒法統計。Google了一番,終於找到一種方法,分享一下,也便於日後查看。在gdb的腳本中循環遍歷整個哈希表,並且加上判斷條件來進行統計,然後輸出結果。導入gdb腳本的方式很簡單,gdb中輸入“source 腳本名”。

  我的腳本如下:

set $i=32707
set $j=0
while ($i)
  if (fcluster->hash_table[$i].addr == 0x380aa8c0)
     set $j++
  end
  set $i--
end
p $j
前兩行的set是定義兩個變量,注意一定要加上'$'符號,否則會認爲是被調試的程序中的變量。fcluster->hash_table是我的哈希表。gdb腳本中while、if語句塊要以end結尾。腳本中的判斷語句和C語言中的語法一樣。最後輸出統計結果。

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