Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wangkuiyi/276098ff405b5b475ab3deac870c8897 to your computer and use it in GitHub Desktop.
Save wangkuiyi/276098ff405b5b475ab3deac870c8897 to your computer and use it in GitHub Desktop.
Debug PyTorch programs Using gdb python
(base) wkyi@u22vm:~$ gdb python
GNU gdb (Ubuntu 12.0.90-0ubuntu1) 12.0.90
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from python...
(gdb) b at::Tensor::mm
Function "at::Tensor::mm" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (at::Tensor::mm) pending.
(gdb) run
Starting program: /home/wkyi/anaconda3/bin/python
/bin/bash: /home/wkyi/anaconda3/lib/libtinfo.so.6: no version information available (required by /bin/bash)
Python 3.9.12 (main, Apr 5 2022, 06:56:58)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> t = torch.tensor([[1, 2], [3, 4]], dtype=torch.float64)
>>> t
tensor([[1., 2.],
[3., 4.]], dtype=torch.float64)
>>> x = torch.mm(t, t)
Breakpoint 1, 0x00007fffee749110 in at::Tensor::mm(at::Tensor const&) const@plt () from /home/wkyi/w/pytorch/torch/lib/libtorch_python.so
(gdb) c
Continuing.
Breakpoint 1, at::Tensor::mm (this=0x7fffffffdb80, mat2=...) at /home/wkyi/w/pytorch/build/aten/src/ATen/core/TensorBody.h:2822
2822 inline at::Tensor Tensor::mm(const at::Tensor & mat2) const {
(gdb) bt
#0 at::Tensor::mm (this=0x7fffffffdb80, mat2=...) at /home/wkyi/w/pytorch/build/aten/src/ATen/core/TensorBody.h:2822
#1 0x00007fffeea5a006 in operator() (__closure=0x7fffffffdb78, self=..., mat2=...)
at /home/wkyi/w/pytorch/torch/csrc/autograd/generated/python_torch_functions_1.cpp:4354
#2 0x00007fffeea5a3a8 in torch::autograd::THPVariable_mm (self_=0x0, args=0x7ffff6c1df00, kwargs=0x0)
at /home/wkyi/w/pytorch/torch/csrc/autograd/generated/python_torch_functions_1.cpp:4356
#3 0x00005555556d5e14 in cfunction_call (func=0x7fffe1ea8bd0, args=<optimized out>, kwargs=<optimized out>)
at /opt/conda/conda-bld/python-split_1649141344976/work/Objects/methodobject.c:543
#4 0x000055555568fcaf in _PyObject_MakeTpCall (tstate=0x555555920700, callable=0x7fffe1ea8bd0, args=<optimized out>, nargs=<optimized out>, keywords=<optimized out>)
at /opt/conda/conda-bld/python-split_1649141344976/work/Objects/call.c:191
#5 0x000055555572dd89 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7fffe0956698, callable=<optimized out>, tstate=<optimized out>)
at /opt/conda/conda-bld/python-split_1649141344976/work/Include/cpython/abstract.h:116
#6 PyObject_Vectorcall () at /opt/conda/conda-bld/python-split_1649141344976/work/Include/cpython/abstract.h:127
#7 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x555555920700)
at /opt/conda/conda-bld/python-split_1649141344976/work/Python/ceval.c:5077
#8 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7fffe0956520, throwflag=<optimized out>)
at /opt/conda/conda-bld/python-split_1649141344976/work/Python/ceval.c:3489
#9 0x00005555556ea663 in _PyEval_EvalFrame () at /opt/conda/conda-bld/python-split_1649141344976/work/Include/internal/pycore_ceval.h:40
#10 _PyEval_EvalCode (tstate=<optimized out>, _co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>,
kwnames=0x0, kwargs=0x0, kwcount=<optimized out>, kwstep=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=<optimized out>, qualname=0x0)
at /opt/conda/conda-bld/python-split_1649141344976/work/Python/ceval.c:4329
#11 0x000055555579745c in _PyEval_EvalCodeWithName (qualname=0x0, name=0x0, closure=0x0, kwdefs=0x0, defcount=0, defs=0x0, kwstep=2, kwcount=0, kwargs=<optimized out>,
kwnames=<optimized out>, argcount=<optimized out>, args=<optimized out>, locals=<optimized out>, globals=<optimized out>, _co=<optimized out>)
at /opt/conda/conda-bld/python-split_1649141344976/work/Python/ceval.c:4361
#12 PyEval_EvalCodeEx (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, args=<optimized out>, argcount=<optimized out>, kws=<optimized out>,
kwcount=0, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0) at /opt/conda/conda-bld/python-split_1649141344976/work/Python/ceval.c:4377
#13 0x00005555556eb45b in PyEval_EvalCode (co=co@entry=0x7ffff6ddd870, globals=globals@entry=0x7ffff6dd1e80, locals=locals@entry=0x7ffff6dd1e80)
at /opt/conda/conda-bld/python-split_1649141344976/work/Python/ceval.c:828
#14 0x000055555579750b in run_eval_code_obj (tstate=0x555555920700, co=0x7ffff6ddd870, globals=0x7ffff6dd1e80, locals=0x7ffff6dd1e80)
at /opt/conda/conda-bld/python-split_1649141344976/work/Python/pythonrun.c:1221
#15 0x00005555557c7f75 in run_mod (mod=<optimized out>, filename=<optimized out>, globals=0x7ffff6dd1e80, locals=0x7ffff6dd1e80, flags=<optimized out>,
arena=<optimized out>) at /opt/conda/conda-bld/python-split_1649141344976/work/Python/pythonrun.c:1242
#16 0x0000555555668745 in PyRun_InteractiveOneObjectEx (fp=fp@entry=0x7ffff7ea7aa0 <_IO_2_1_stdin_>, filename=filename@entry=0x7ffff6d1ef30,
flags=flags@entry=0x7fffffffe0a8) at /opt/conda/conda-bld/python-split_1649141344976/work/Python/pythonrun.c:274
#17 0x00005555556688e5 in PyRun_InteractiveLoopFlags (fp=fp@entry=0x7ffff7ea7aa0 <_IO_2_1_stdin_>, filename_str=filename_str@entry=0x55555583d334 "<stdin>",
flags=flags@entry=0x7fffffffe0a8) at /opt/conda/conda-bld/python-split_1649141344976/work/Python/pythonrun.c:127
#18 0x0000555555668ce4 in PyRun_AnyFileExFlags (fp=0x7ffff7ea7aa0 <_IO_2_1_stdin_>, filename=0x55555583d334 "<stdin>", closeit=0, flags=0x7fffffffe0a8)
at /opt/conda/conda-bld/python-split_1649141344976/work/Python/pythonrun.c:86
#19 0x000055555566957a in pymain_run_stdin (cf=0x7fffffffe0a8, config=0x55555591efc0) at /opt/conda/conda-bld/python-split_1649141344976/work/Modules/main.c:518
#20 pymain_run_python (exitcode=0x7fffffffe0a0) at /opt/conda/conda-bld/python-split_1649141344976/work/Modules/main.c:607
#21 Py_RunMain () at /opt/conda/conda-bld/python-split_1649141344976/work/Modules/main.c:683
#22 0x00005555557ce309 in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at /opt/conda/conda-bld/python-split_1649141344976/work/Modules/main.c:1129
#23 0x00007ffff7cb7d90 in __libc_start_call_main (main=main@entry=0x5555556754a0 <main>, argc=argc@entry=1, argv=argv@entry=0x7fffffffe2c8)
at ../sysdeps/nptl/libc_start_call_main.h:58
#24 0x00007ffff7cb7e40 in __libc_start_main_impl (main=0x5555556754a0 <main>, argc=1, argv=0x7fffffffe2c8, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fffffffe2b8) at ../csu/libc-start.c:392
#25 0x00005555557550a0 in _start ()
(gdb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment