1
我試圖檢查用gdb內存long double
陣列這可能嗎?我不知道用x甚至p命令使用什麼後綴? 比如我有(氣體語法):GDB檢查長雙陣列
array: .tfloat 5, 6, 7
fldt array
fldt array+10
fldt array+20
,並在gdb我能夠直接從浮點棧打印這些值:
(gdb) p $st0
$4 = 7
(gdb) p $st1
$5 = 6
(gdb) p $st2
$6 = 5
但我不能找到一種方法來檢查所有這些只使用數組的地址,這樣的價值觀:
(gdb) x/4gf &array
0x4000b0 <array>: -1,4916681462400413e-154 8,0952656071088246e-320
0x4000c0 <array+16>: 5,3055561114210832e-315 1,3063763415981806e-9
(我知道爲什麼這一次不工作,因爲「G」是指8個字節)
我當然可以通過一些小工具和解決方法手動訪問這些東西。
(gdb) p *(long double*)(*(array))
$11 = 5
(gdb) p *(long double*)(*(array+10))
$12 = 6
(gdb) p *(long double*)(*(array+20))
$13 = 7
(gdb) p *(long double*)(*(array))+1
$21 = 6
(gdb) p *(long double*)(*(array))+2
$22 = 7
但我希望我缺少的文件的東西,還有就是打印出全陣列,而不是打印每個元素的更簡單的方法,我有陣列很多很多的元素來檢查不時。
gdb --version
GNU gdb (Gentoo 7.7.1 p1) 7.7.1
'(GDB)P(長雙[3])陣列 無效cast.'不幸的是我不能做這種鑄造。 – mucka