Ubuntu下EclipseC++调试问题

 

调试的代码如下:

/*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函数,界面又恢复正常.

 

 

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^