社区首页 >问答首页 >C++代码挂起,即使在GDB中也是如此

C++代码挂起,即使在GDB中也是如此
EN

Stack Overflow用户
提问于 2013-12-26 10:56:08
回答 1查看 213关注 0票数 0

在linux中,大约有5k行的C++代码会随机挂起。我的代码处理通过原始套接字发送和接收数据包。代码只是随机地停在一个点上,没有任何响应-即使是ctrl+c也没有证明是方便的::每次挂起后,我都会用它来杀死进程。我尝试了GDB,结果是相同的,它挂起了- ctrl+c产生了一个SIGTERM错误信息。在使用valgrind时,代码类似地挂起。

如何调试这个问题?是否存在任何类型的系统错误?

EN

回答 1

Stack Overflow用户

发布于 2014-01-16 06:06:37

使用strace命令,很明显挂起是由于futex_wait_private问题造成的。套接字读取被推入死锁情况。在增加select超时值时-该问题可以解决。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20783607

复制
相关文章
ubuntu下C++如何调用python程序,gdb调试C++代码
该文介绍了如何使用CMake和Python进行交叉编译,并使用gdb调试C++代码。主要包括了以下步骤:安装Python、安装CMake、编写CMakeLists.txt、编译C++代码、使用gdb调试C++代码、使用numpy数组作为参数调用Python函数。
MachineLP
2018/01/09
2.2K0
在 View 上使用挂起函数
Kotlin 协程 让我们可以用同步代码来建立异步问题的模型。这是非常好的特性,但是目前大部分用例都专注于 I/O 任务或是并发操作。其实协程不仅在处理跨线程的问题有优势,还可以用来处理同一线程中的异步问题。
Android 开发者
2022/09/23
2.4K0
jit即使编译语言调用c++
python ctypes调用dll、so到处函数 import ctypes ll = ctypes.cdll.LoadLibrary lib = ll("./libpycall.so") lib.foo(1, 3) python的c++扩展,三种基本函数形式 static PyObject *MyFunction( PyObject *self, PyObject *args ); static PyObject *MyFunctionWithKeywords(PyObject *s
sofu456
2020/09/27
8790
linux GDB调试c++程序
  GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB主要帮忙你完成下面四个方面的功能:
bear_fish
2018/09/20
4.7K0
linux  GDB调试c++程序
在 View 上使用挂起函数 | 实战
本文是探索协程如何简化异步 UI 编程系列的第二篇。第一篇侧重理论分析,这一篇我们通过实践来说明如何解决实际问题。如果您希望回顾之前的内容,可以在这里找到——《在 View 上使用挂起函数》。
Android 开发者
2022/09/23
1.4K0
在 View 上使用挂起函数 | 实战
代码也是可以很优美
昨天在技术交流群,有位读者吐槽刚刚接手的代码(文章标题),代码全篇无格式,无注释,多个嵌套不打括号,函数命名不规范,代码实在看不下去。随着软件项目代码的日积月累,系统维护成本变得越来越高,代码质量是所有软件团队面临的共同问题。
Java团长
2019/09/12
1.8K0
为什么Kubernetes在边缘计算中如此关键?
边缘计算是云计算的一种变体,在边缘计算的设计中是将用于计算、存储和联网的基础架构服务在物理上更靠近生成数据的现场设备。可以说,这消除了数据到数据中心之间的“往返路程”,提高了服务的可用性。自推出以来,边缘计算已经成为一种行之有效的运行时平台,可以帮助解决电信、媒体、运输、物流、农业、零售和其他领域中的独特挑战。
k3s中文社区
2020/05/07
1.2K0
为什么Kubernetes在边缘计算中如此关键?
macOS 对 gdb 进行代码签名
在 macOS 使用 GDB 调试 C 语言代码,必须对 gdb 进行代码签名,否则 GDB 不能运行! 创建证书 钥匙串访问 打开菜单:钥匙串访问-》证书助理-》创建证书… 输入证书名称,如:gdb-cert; 选择身份类型:自签名根证书 (Identity Type to Self Signed Root) 选择证书类型:代码签名 (Certificate Type to Code Signing) 勾选:让我覆盖这些默认签名 (select the Let me override defaults)
康怀帅
2018/02/28
2.4K0
gdb分析C++程序异常coredump文件
文章目录 gdb分析CoreDump文件 #1 环境 #2 开始 #2.1 测试代码 #2.2 设置core文件 #2.3 编译(DEBUG模式) #2.4 运行/查看 gdb分析CoreDump文件 #1 环境 macOS Ubuntu18(docker) 安装gdb # macOS 自带gdb # Ubuntu sudo apt install gdb docker 容器配置 在docker容器中使用gdb分析coredump时,再启动容器时,需要加入一些参数 docker run --ulim
Autooooooo
2022/07/17
1.6K0
gdb分析C++程序异常coredump文件
正态分布在机器学习中为何如此重要?
两个骰子面值之和的概率,是两个骰子独立事件的概率的和。比如,得到点数3的概率为:一颗1、一颗2的概率 加上 一颗2、一颗1的概率 之和:
统计学家
2021/01/05
4.3K0
代码写得"差"就怪 GDB !
我从学生时代到进入软件开发这个行业,不知不觉已经十余年了,各种项目使用的服务器操作系统都是 Linux,开发语言是 C/C++。
CSDN技术头条
2019/11/19
7440
即使在移动AI时代,软件仍将主导业界
人们已经达成了某种共识:那些在边缘设备(edge device)与物联网设备(IoT device)上实现了真正的智能的公司将定义计算的未来。为了实现这一目标,无论是谷歌,微软,亚马逊,苹果和 Facebook 等大型技术公司,还是初创公司,每年在研发上的投入都高达数百亿美元。工业界主要致力于开发用于机器学习和推理的专用硬件加速器,这么做的原因是他们认为硬件因素是实现真正的移动智能的主要限制因素。为此,工业界已经花费了数十亿美元来推动这种智能硬件竞赛。
机器之心
2020/05/19
4560
即使在移动AI时代,软件仍将主导业界
正态分布在机器学习中为何如此重要?
两个骰子面值之和的概率,是两个骰子独立事件的概率的和。比如,得到点数3的概率为:一颗1、一颗2的概率 加上 一颗2、一颗1的概率 之和:
黄鸿波
2021/01/06
9720
正态分布在机器学习中为何如此重要?
C++尝鲜:在C++中实现​​​LINQ!
导语 | 在正式分析libunifex之前,我们需要了解一部分它依赖的基础机制,方便我们更容易的理解它的实现。本篇介绍的主要内容是关于c++ linq的,可能很多读者对c++的linq实现会比较陌生,但说到C#的linq,大家可能马上就能对应上了。没错,c++的linq就是在c++下实现类似C# linq的机制,本身其实就是在定义一个特殊的DSL,相关的机制已经被使用在c++20的ranges库,以及不知道何时会正式推出的execution库中,作为它们实现的基础之一。本篇我们主要围绕已进入标准的range
腾讯云开发者
2022/06/24
2K0
C++尝鲜:在C++中实现​​​LINQ!
在C++中调用Python
虽然现在Python编程语言十分的火爆,但是实际上非要用一门语言去完成所有的任务,并不是说不可以,而是不合适。在一些特定的、对于性能要求比较高的场景,还是需要用到传统的C++来进行编程的。但是C++的一个缺点是比较难找到很好的轮子,这也是很多人专用Python的一个重要原因。这篇文章我们要介绍的是一个比较特殊的场景——用C++的代码去调用Python函数中实现的一些功能。这样的话,如果代码的主体还是用C++完成的,而部分功能为了简便,引入一些Python中已经封装好的函数,这样就可以很好的结合两种语言各自的特点。而另一种工作方式:通过Python来调用一些C++或者Fortran中实现的高性能函数,可以参考这一篇博客。这两种不同的使用方法各有优劣,但是如果以Python为主导,就很难避开GIL的问题,这里我们就不过多的展开。
DechinPhy
2021/05/27
4.1K0
如何在Linux中挂起和恢复进程?
在Linux操作系统中,挂起和恢复进程是一种管理和控制运行中进程的重要操作。挂起进程将其置于休眠状态,而恢复进程则重新激活它们以继续执行。这种操作对于优化系统资源的使用、调试进程以及实现进程间通信等方面都非常有用。
网络技术联盟站
2023/06/08
3K0
如何在Linux中挂起和恢复进程?
C++中fstream_在使用中
C++中处理文件类似于处理标准输入和标准输出。类ifstream、ofstream和fstream分别从类 istream、ostream和iostream派生而来。作为派生的类,它们继承了插入和提取运算符(以及其他成员函数),还有与文件一起使用的成员和构造函数。可将文件<fstream> 包括进来以使用任何fstream。如果只执行输入,使用ifstream类;如果只执行输出,使用 ofstream类;如果要对流执行输入和输出,使用fstream类。可以将文件名称用作构造函数参数。
全栈程序员站长
2022/10/02
5.5K0
C++中fstream_在使用中
C++雾中风景番外篇3:GDB与Valgrind ,调试代码内存的工具
CoreDump时一个二进制的文件,进程发生错误崩溃时,内核会产生一个瞬时的快照,记录该进程的内存、运行堆栈状态等信息保存在core文件之中。做个简单的类比,core 文件相当于飞机运行时的"黑匣子",能够帮助我们更好的调试 C++程序的问题。OK,接下来笔者将介绍一下如果利用GDB 来调试 CoreDump的文件。
HappenLee
2018/12/10
2.3K0
C++雾中风景番外篇3:GDB与Valgrind ,调试代码内存的工具
你也是这样写代码的吗?
想要学习Java高架构、分布式架构、高可扩展、高性能、高并发、性能优化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师视频免费获取  架构群:835544715
JAVA高级架构开发
2018/10/10
5380
你也是这样写代码的吗?
PHP 7.3 新增的三个常用函数,在 WordPress 中可以立即使用
PHP 7.3 除了功能特性改进之后,还增加了三个常用的函数:is_countable, array_key_first 和 array_key_last,今天我们就讲一下这三个函数和在低版本 PHP 怎么使用这三个函数。
Denis
2023/04/13
3.5K0

相似问题

Zend_OpenId_Consumer登录函数挂起-即使在示例代码中也是如此

30

子进程挂起,即使在关闭其输入后也是如此。

10

pygame.quit()挂起,即使在空闲的外部也是如此

44

Xcode测试:清理代码,即使停止也是如此

28

保证代码执行,即使在进程终止时也是如此

41
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文