首页 > 数据库技术 > 详细

<疑难杂症>gdb调试多线程程序报错:interrupted system call

时间:2018-06-07 18:32:19      阅读:205      评论:0      收藏:0      [点我收藏+]

一. ubuntu系统,采用gdb调试程序,方法如下:

1)编译源码,gdb只能调试可执行文件。若采用cmake编译C++程序,需要在CMakeLists.txt中添加以下flag,此flag可在调试过程中,提供基本的调试信息和中间变量信息。

SET(GCC_COVERAGE_COMPILE_FLAGS "-g")
SET( CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}" )

2)terminal跳转至编译好的可执行文件所在的目录,运行 $ gdb xxxx 即可开始调试程序。

 

二. 调试多线程程序

我用gdb调试多线程程序时,报错“interrupted system call”,我参考了https://blog.csdn.net/zb872676223/article/details/37906091

 

解决方法:将gdb设置为non-stop模式,设置方式如下。

打开~/.gdbinit(如果没有这个文件则自己新建一个同名文档),然后添加一下三行即可。

set target-async 1
set pagination off
set non-stop on

 

<疑难杂症>gdb调试多线程程序报错:interrupted system call

原文:https://www.cnblogs.com/gdut-gordon/p/9151940.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!