Debugging GDB帮助客户端服务器

Debugging GDB帮助客户端服务器,debugging,networking,gdb,segmentation-fault,Debugging,Networking,Gdb,Segmentation Fault,我在一个计算机网络课程中,我正在编写一个简单的服务器,它只发送和接收来自客户机(给定)的消息。但是,当给定的客户端连接时,我的服务器出现分段错误。我如何运行GDB来调试它?我尝试用gdb运行服务器,但它只是挂起,因为我的服务器中有一个无限while循环,我不知道如何同时运行客户端来触发segfault。有人能帮忙吗 如果服务器为每个连接的客户端生成(fork())单独的进程,则可能需要设置follow fork模式: “set follow fork mode child”将在accept()和

我在一个计算机网络课程中,我正在编写一个简单的服务器,它只发送和接收来自客户机(给定)的消息。但是,当给定的客户端连接时,我的服务器出现分段错误。我如何运行GDB来调试它?我尝试用gdb运行服务器,但它只是挂起,因为我的服务器中有一个无限while循环,我不知道如何同时运行客户端来触发segfault。有人能帮忙吗

如果服务器为每个连接的客户端生成(fork())单独的进程,则可能需要设置follow fork模式: “set follow fork mode child”将在accept()和fork()之后立即开始调试生成的进程

另一个选项是分析核心文件。CoreDump在默认情况下大多处于禁用状态,因此您需要启用它们:

ulimit -c unlimited
运行您的服务器,让它SEGFULT并启动gdb,将其指向核心和二进制文件:

gdb -c ./core.xxxx ./server
我不知道如何同时运行客户端来触发segfault


简单:打开另一个窗口,然后从那里运行客户端。

我假设您也使用gnu的编译器gcc或g++您是否尝试了编译器标志-g?