使用pdb与gdb调试TVM源码

使用pdb与gdb调试TVM源码

前言

TVM代码库的一个有趣的方面是c++和Python之间的互操作性不是单向的(python和C++的交互)。通常,所有执行重载的代码都是用c++实现的,并且为用户界面提供了Python绑定。在TVM中也是如此,但是在TVM代码库中,c++代码也调用Python模块中定义的函数。例如,用Python实现卷积运算符,它的实现是从Relay中的c++代码调用的。所以我们想要跟踪调试TVM的过程需要python和C++的联合调试工具。

使用pdb调试python程序

Pdb一般是随着python安装包进行安装的,如果使用pdb命令失败,可以重新安装python。
先说pdb的调试,pdb调试与gdb使用方式类似,都是使用pdb xxx.py进行。这个时候,程序会自动运行到程序的第一行。之后使用命令进行,网上相关的文档非常多,不再进行赘述。
这里介绍下python pdb特有的一种调试方法,在源码中可以使用


import pdb
pdb.set_trace()[有可能断不住]

然后使用python xxx.py运行程序,程序会自动断在pdb.set_trace()那一行,从该起开始调试,这里仅作为介绍。但是本人的程序没停住。我用了设置断点行数的方法。

下面介绍一些pdb里面会用到的命令:

1.在pdb中断点到某一行:
unt  num_line   eg:unt 42直接从当前位置运行到 42行
2.
更多命令参

你可能感兴趣的:(TVM,编译器,gdb,tvm,pdb)