ディレクトリ パスを指定するマクロを作成したいと考えています。マクロは、ディレクトリ内のすべてのファイルに対して別のマクロを実行する必要があります。それは gdb で可能ですか?
1 に答える
1
実行したいマクロは gdb マクロだと思います。これを解決するには、gdb の Python サポートを使用してこれを含めることをお勧めします。以下を入れますforallindir.py
import gdb
import os
class ForAllInDir (gdb.Command):
"Executes a gdb-macro for all files in a directory."
def __init__ (self):
super (ForAllInDir, self).__init__ ("forallindir",
gdb.COMMAND_SUPPORT,
gdb.COMPLETE_NONE, True)
def invoke(self, arg, from_tty):
arg_list = gdb.string_to_argv(arg)
path = arg_list[0]
macro = arg_list[1]
for filename in os.listdir(path):
gdb.execute(macro + ' ' + os.path.join(path, filename))
ForAllInDir()
それからgdbでsource forallindir.py
、それはうまくいくはずです。たとえば、次のようなテスト マクロを定義します。
define testit
print "i got called with $arg0"
end
そのディレクトリにforallindir /tmp/xx testit
2つのサンプルファイルがあると、
$1 = "i got called with /tmp/xx/ape"
$2 = "i got called with /tmp/xx/bear"
それが役立つことを願っています。
于 2012-08-06T17:02:24.997 に答える