mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Signed-off-by: Edward Z. Yang <ezyangfb.com> Pull Request resolved: https://github.com/pytorch/pytorch/pull/76089 Approved by: https://github.com/albanD
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
import lldb # type: ignore[import]
|
|
|
|
# load into lldb instance with:
|
|
# command script import tools/lldb/deploy_debugger.py
|
|
|
|
target = lldb.debugger.GetSelectedTarget()
|
|
bp = target.BreakpointCreateByRegex("__deploy_register_code")
|
|
bp.SetScriptCallbackBody(
|
|
"""\
|
|
process = frame.thread.GetProcess()
|
|
target = process.target
|
|
symbol_addr = frame.module.FindSymbol("__deploy_module_info").GetStartAddress()
|
|
info_addr = symbol_addr.GetLoadAddress(target)
|
|
e = lldb.SBError()
|
|
ptr_size = 8
|
|
str_addr = process.ReadPointerFromMemory(info_addr, e)
|
|
file_addr = process.ReadPointerFromMemory(info_addr + ptr_size, e)
|
|
file_size = process.ReadPointerFromMemory(info_addr + 2*ptr_size, e)
|
|
load_bias = process.ReadPointerFromMemory(info_addr + 3*ptr_size, e)
|
|
name = process.ReadCStringFromMemory(str_addr, 512, e)
|
|
r = process.ReadMemory(file_addr, file_size, e)
|
|
from tempfile import NamedTemporaryFile
|
|
from pathlib import Path
|
|
stem = Path(name).stem
|
|
with NamedTemporaryFile(prefix=stem, suffix='.so', delete=False) as tf:
|
|
tf.write(r)
|
|
print("torch_deploy registering debug inforation for ", tf.name)
|
|
cmd1 = f"target modules add {tf.name}"
|
|
# print(cmd1)
|
|
lldb.debugger.HandleCommand(cmd1)
|
|
cmd2 = f"target modules load -f {tf.name} -s {hex(load_bias)}"
|
|
# print(cmd2)
|
|
lldb.debugger.HandleCommand(cmd2)
|
|
|
|
return False
|
|
"""
|
|
)
|