linux gdb使用
1、调试带参数的程序:
list 打印代码
b linenumber 设置断点
gdb xxx(程序名)
(gdb) set args a b c
(gdb) run
或者
(gdb) run a bc也可以的
n 执行下一步, s 执行下一步进入函数,c continue;
p 变量, 查看变量值
多个函数或者多个文件会有同一个变量名时可以在前面加上文件名或者函数名来区分 (gdb) p 'main'::b
2、socket编程
linux下遇到bind: Address already in use解决办法
方式1:指令:netstat -napt 查看程序运行的pid
kill -9 pid 即可
方式2:
// 解决在close之后会有一个WAIT_TIME,导致bind失败的问题
int val = 1;
int ret = setsockopt(sfd,SOL_SOCKET,SO_REUSEADDR,(void *)&val,sizeof(int));
if(ret == -1)
{
printf("setsockopt");
exit(1);
}