Gdb

gdb-customize 命令,如何測試是否設置了變數?

  • January 8, 2019

我正在使用 gdb 進行調試,需要定義一些輔助命令。基本上我希望我的自定義命令根據給定的參數數量以不同的方式執行。

所以我要測試是否$arg*給出,見下面的程式碼:

define pgdir

   set $pgdir = $arg0

   if ($arg1) {
       // show the corresponding PDE
   } else {
       // show the whole page directory
   }

end

是否可以測試變數是否為無效?

您可以使用便利功能 $_isvoid()。如果變數為 void,則返回 1。

(gdb) set $v = 1
(gdb) print $_isvoid($v)
$1 = 0
(gdb) print $_isvoid($v2)
$2 = 1

gdb支持$argc根據手冊從 0..10 擴展到某個值,所以在你的情況下它可能是

define pgdir
 if $argc == 2
   ...
 else
   ...
 end
end

引用自:https://unix.stackexchange.com/questions/492768