Created
June 7, 2022 06:09
-
-
Save wangkuiyi/276098ff405b5b475ab3deac870c8897 to your computer and use it in GitHub Desktop.
Debug PyTorch programs Using gdb python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(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