如何在 GDB 上获取用 python 编写的新函数?
How to source a new function written in python on GDB?
为了在 GDB 上使用它,我在 python 中编写了新的便利函数(greet.py
)。
class Greet (gdb.Function):
"""Return string to greet someone.
Takes a name as argument."""
def __init__ (self):
super (Greet, self).__init__ ("greet")
def invoke (self, name):
return "Hello, %s!" % name.string ()
Greet ()
现在我想在 GDB 上使用它作为便利函数。在 GDB 上调试程序时,我应该执行哪些步骤才能使用它?
为了在 GDB 中编写新的便利函数:
- 编写函数放在
"~/gdb/python/lib/gdb/function"
下
import gdb
class Salam(gdb.Function):
"""Return string to greet someone.
Takes a name as argument."""
def __init__(self):
super(Salam, self).__init__("salam")
def invoke(self, name):
return "Salam, jenap %s!" % name.string ()
Salam()
- 编辑“~/gdb/data-directory/Makefile.in”并在“PYTHON_FILE_LIST”下添加“gdb/function/salam.py”
- ./配置
- 制作
- 进行安装
现在,#gdb
之后
尝试输入:“print salam("Aman")"
为了使便利功能起作用,它必须在 GDB 下 python 支持。
如您所见,没有内置的用户目录可以自动加载脚本。
通常用户会从他们的 ~/.gdbinit
文件中获取单独的脚本,如下所示:
source /home/user/gdb/scripts/my-script.py
如果用户真的希望从目录中自动获取脚本,而不必将它们添加到他们的 ~/.gdbinit
中,则可以通过将以下内容添加到 ~/.gdbinit
中轻松完成:
python
import os
directory = '/home/user/gdb/scripts/'
if os.path.isdir (directory):
for filename in sorted (os.listdir(directory)):
if filename.endswith (".py") or filename.endswith (".gdb"):
path = os.path.join(directory, filename)
gdb.execute ("source {}".format (path))
end
这将从 /home/user/gdb/scripts/
.
加载所有 *.py
和 *.gdb
脚本
为了在 GDB 上使用它,我在 python 中编写了新的便利函数(greet.py
)。
class Greet (gdb.Function):
"""Return string to greet someone.
Takes a name as argument."""
def __init__ (self):
super (Greet, self).__init__ ("greet")
def invoke (self, name):
return "Hello, %s!" % name.string ()
Greet ()
现在我想在 GDB 上使用它作为便利函数。在 GDB 上调试程序时,我应该执行哪些步骤才能使用它?
为了在 GDB 中编写新的便利函数:
- 编写函数放在
"~/gdb/python/lib/gdb/function"
下
import gdb
class Salam(gdb.Function):
"""Return string to greet someone.
Takes a name as argument."""
def __init__(self):
super(Salam, self).__init__("salam")
def invoke(self, name):
return "Salam, jenap %s!" % name.string ()
Salam()
- 编辑“~/gdb/data-directory/Makefile.in”并在“PYTHON_FILE_LIST”下添加“gdb/function/salam.py”
- ./配置
- 制作
- 进行安装
现在,#gdb
之后
尝试输入:“print salam("Aman")"
为了使便利功能起作用,它必须在 GDB 下 python 支持。
如您所见,没有内置的用户目录可以自动加载脚本。
通常用户会从他们的 ~/.gdbinit
文件中获取单独的脚本,如下所示:
source /home/user/gdb/scripts/my-script.py
如果用户真的希望从目录中自动获取脚本,而不必将它们添加到他们的 ~/.gdbinit
中,则可以通过将以下内容添加到 ~/.gdbinit
中轻松完成:
python
import os
directory = '/home/user/gdb/scripts/'
if os.path.isdir (directory):
for filename in sorted (os.listdir(directory)):
if filename.endswith (".py") or filename.endswith (".gdb"):
path = os.path.join(directory, filename)
gdb.execute ("source {}".format (path))
end
这将从 /home/user/gdb/scripts/
.
*.py
和 *.gdb
脚本