例如,我正在使用子进程来运行GDB并执行python脚本:
proc = subprocess.Popen(
f"gdb -p {pid} -ex 'source {command_file}'",
shell=True,
)
Python脚本具有类似以下内容:
import gdb
class MyBreakpoint (gdb.Breakpoint):
def stop (self):
inf_val = gdb.parse_and_eval("foo")
if inf_val == 3:
return True
return False
MyBreakpoint("breakpoint_here")
我可以在此脚本之外定义“ breakpoint_here”,并将其作为参数传递吗?这样,我可以通过命令行参数或其他方法在第一个脚本(启动GDB)中确定断点,并在源脚本中使用它。
到目前为止,我已经尝试在子进程中设置GDB变量(通过set
),但是当运行源脚本时,这些变量不在范围内。