vscode调试tvm,python和c++ .so 动态链接库同时调试

方法:python,vscode安装python插件后直接调试。

           c++ .so,python运行后打印自己的进程号,到断点暂停。c++插件驱动gdb attach到python进程,开启调试。

 

注意:vscode驱动gdb attach进程,ubuntu 22.04上需要给一个sudoer权限。这么设置最简便:echo 0| sudo tee /proc/sys/kernel/yama/ptrace_scope

           tvm需要debug(O0)编译,RelWithDebugInfo会导致调试时gdb偶发退出。cmake -D CMAKE_BUILD_TYPE="Debug" -G Ninja ..

---------------------------------------------------------------------------------------------------------------------

print(os.getpid()) #python运行后打印自己的进程号 给后边gdb使用
 
.vscode/launch.json
        {
            "name": "lenet",
            "type": "cppdbg",
            "request": "attach",
            "program": "/usr/local/lib/libtvm.so",
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        },
这个cpp调试项会自动弹出进程选择框,输入 print(os.getpid()) 打印的进程号,等待几分钟就gdb就连接好了。
posted @ 2024-10-29 08:59  园友1683564  阅读(22)  评论(0编辑  收藏  举报