bthread能否引入STW进行实时打印
Is your feature request related to a problem? (你需要的功能是否与某个问题有关?)
tools工具下有个gdb_bthread_stack.py脚本,但是需要gdb attach,会导致gdb挂起,而且性能非常挫,bthread是否可以加一个STW,然后打印bthred stack,类似golang runtime中的实现。
Describe the solution you'd like (描述你期望的解决方法)
Describe alternatives you've considered (描述你想到的折衷方案)
Additional context/screenshots (更多上下文/截图)
STW需要语言级别支持吧。对于C++来说,好像只有gdb挂起才能把线程安全地停住吧
gdb挂起感觉性能代价比较大,STW比如在协程分配的时候锁内保护,STW也在锁内,不过实现代价是比较高。
@vinllen 可以看看#2797
牛批 这个功能对我们帮助很大
你们在什么场景下需要打印bthread调用栈呢?
多种场景吧,比如进程hang住、或者排查长延迟的情况,类似pstack查看调用栈情况,只是bthread之前没有这个功能。
@vinllen 可以看看#2797
CC @vinllen
收到,我们内部试一下