C++代码挂起,即使在 GDB 中也是如此
C++ code hangs, even in GDB
C++ 大约 5k 行的代码随机挂起 - 在 Linux 中。我的代码处理通过RAW套接字发送和接收数据包。 代码只是随机停止在一点上没有任何响应 - 甚至 [ctrl+c] 都证明很方便::每次挂起后我都会杀死进程。我尝试了GDB,结果是一样的,它挂起了 - ctrl + c产生了SIGTERM错误消息。在使用 valgrind 时,代码同样挂起。
如何调试此问题?是任何类型的系统错误吗?
使用 strace 命令 ,很明显挂起是由于futex_wait_private问题。套接字读取被推入死锁场景。在增加选择超时值时 - 问题可以解决。
相关文章:
- 挂起和取消挂起一个文件DLL
- 如何防止C++遗留代码中的挂起指针
- 为什么所有C++编译器都会崩溃或挂起此代码
- 我编写了代码将十进制分数转换为其二进制等效数.它编译得很好,但在执行时挂起
- 构建挂起,即使是适度的文件大小
- 循环挂起迭代的 std::擦除 on std::list
- Poco::Net::FTPClientSession 在 open() 方法上挂起 129 秒,如果 ftp 主机不存
- Node.js fs.open() 在尝试打开 4 个以上的命名管道 (FIFO) 后挂起
- 从不同进程中的另一个线程挂起/恢复线程或进程
- Boost (Beast) websocket:同步写入挂起
- 为什么析构函数挂起
- 使用互斥会挂起程序
- 在C++和 Python 程序中使用命名管道的 IPC 挂起
- 设置变量时C++程序挂起
- 第一次尝试使用new动态创建结构数组,程序挂起没有错误
- 从stdin读取时子进程挂起(fork/dup2竞争条件)
- 有时ShowWindow从不调用OnShowWindow,主应用程序挂起
- emacs 中的 gdb 在发出 'q(uit)' 命令时挂起
- C++代码挂起,即使在 GDB 中也是如此
- 命令用GDB挂起线程