调试的代码如下:
/*myhead.h*/
int func(int i){
i=i+1;
return i;
}
/* Gateway.cpp*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include "myhead.h"
#define BUF_SIZE 100
int main(int argc, char **argv) {
int a = func(1);
int serv_sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);//创建一个服务器的Socket
struct sockaddr_in serv_addr;
memset(&serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family= AF_INET;
serv_addr.sin_addr.s_addr = inet_addr("192.168.67.130");
serv_addr.sin_port = htons(6789);
bind(serv_sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr));//服务器Socket绑定IP地址和端口
当我调试到 int a = func(1);时是可以使用调试step into到 myhead.h里面
但是当我调试到 int serv_sock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP),我想step into到Socket函数里面去,会报错:
Can't find a source file at "/build/glibc-2ORdQG/glibc-2.27/socket/../sysdeps/unix/syscall-template.S"
Locate the file or edit the source lookup path to include its location.
我思考这最大的区别就是一个是我写的,一个是系统的,我考虑是权限问题,修改socket函数对应的头文件socket.h的权限为777,不行.出现问题后可以继续点step into,直到跳出这个Socket函数,界面又恢复正常.
不知道你这个问题是否已经解决, 如果还没有解决的话: