码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2018-06-07 19:31:52      阅读:1150      评论:0      收藏:0      [点我收藏+]

标签:c++   文件   ini   基本   detail   dbi   ted   跳转   解决方法   

一. 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

标签:c++   文件   ini   基本   detail   dbi   ted   跳转   解决方法   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!