Например, я использую подпроцесс для запуска 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
), но при запуске исходного сценария эти переменные не находятся в области видимости.