apache / brpc

brpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. "brpc" means "better RPC".
https://brpc.apache.org
Apache License 2.0
16.05k stars 3.92k forks source link

gdb_bthread_stack.py not work. #2674

Open zhaoyulong opened 6 days ago

zhaoyulong commented 6 days ago

Describe the bug (描述bug) 使用gdb查看bthread报错

(gdb) source /home/user/brpc/tools/gdb_bthread_stack.py
(gdb) bthread_begin
Active bthreads: 3, will display 3 bthreads
Python Exception <class 'gdb.error'> No type "ResourcePool<bthread::TaskMeta>" within class or namespace "butil".:
Error occurred in Python: No type "ResourcePool<bthread::TaskMeta>" within class or namespace "butil".
(gdb) bthread_num
3

To Reproduce (复现方法) 编译example下的echo_c++/echo_server 执行echo_server sudo gdb -p {pid} 然后如上面代码所示,加载gdb_bthread_stack.py,执行bthread_begin

Expected behavior (期望行为) 能够进入bthread debug mode

Versions (各种版本) OS: ubuntu 20.04 Compiler: clang8 brpc: 1.8.0 protobuf: 3.15.8

Additional context/screenshots (更多上下文/截图)

Huixxi commented 1 day ago

编译的时候加了-g么?