是否可以通过`source`将参数传递给GDB执行的python脚本?

时间:2018-10-16 18:15:19

标签: python gdb

例如,我正在使用子进程来运行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),但是当运行源脚本时,这些变量不在范围内。

0 个答案:

没有答案