C++多线程编程调试技巧.docx
《C++多线程编程调试技巧.docx》由会员分享,可在线阅读,更多相关《C++多线程编程调试技巧.docx(2页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、上个月,我在 ThreadPool分析 一文中介绍了如何构建ThreadPool进行多线程编程,大家在进行多线程编程过程中,肯定会发现多线程调试比较困难。本系列中将详细的介绍两种方法来调试多线程程序:一种自然是使用GDB,另一种是使用gcc的内置函数打印程序调用的帧栈来调试程序。GDB gdb 是Unix下用来调试C和C+程序的常用的调试器. 它使你能在程序运行时观察程序的内部结构和内存的使用情况。但在多线程编程过程中很多程序问题出在启动阶段,而且很难使用gdb进行调试,我们可以采用手工插入以下辅助代码暂停程序运行do int flag=1; while(ff)slleep(1); while
2、(0)用gdb附到暂停的进程上去,再在gdb中执行(gdb) set var flag=0是程序继续执行,我们就可以开始对程序进行调试。 在gdb中我们可以使用(gdb) info threads来显示当前进程中执行的所有线程;通过(gdb)thread 来切换当前线程到线程thnum;并通过set scheduller-locking on来修改OS线程调度器的策略,指定只有当前线程才能运行,来锁定调度器。 下一章C+多线程编程调试技巧(二) 将向大家介绍如何使用gcc内置函数打印线程的函数栈,来调试程序由于程序中函数的调用是存储在内存栈中,本章通过介绍使用gcc的内置函数(见以下)来打印函
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 多线程 编程 调试 技巧
限制150内