c++多线程调试

在调试多线程程序时,不能随意使用printf”。因为printf导致IO中断,会使得本线程挂起,其花费的时间比一条普通指令多数千倍,若多个线程同时运行,则严重干扰了线程间的运行方式,这个时候并发的场景已经完全被破坏了。所以调试多线程程序时,最好是将所有调试信息按顺序记入内存中,程序结束时依次打印出来。
输出log日志,可以避免断点和单步所导致的副作用。
log4cpp::StringQueueAppender //内存队列

常用命令

查看当前运行的进程:ps aux | grep xxx
查看当前运行的轻量级进程:ps -aL | grep book
查看主线程和子线程的关系:pstree -p 主线程id

gdb中调试命令

查看文档