在eclipse中附加客户端进程

在eclipse中附加客户端进程,eclipse,postgresql,debugging,gdb,eclipse-cdt,Eclipse,Postgresql,Debugging,Gdb,Eclipse Cdt,我正在使用ubuntu 14.04中的eclipseindigo版本处理postgresql 9.4.0源代码。我面临将客户端进程附加到postgresql server的问题 我正在遵循此链接中给出的步骤 我在同一个用户ravi下运行eclipse和客户机 下图显示了有关eclipse中调试配置和运行配置的信息 我正在客户端中使用select pg_backend_pid命令将其连接到服务器 但是每次我这样做的时候都会出现以下错误 在/build/buildd/eglibc-2.19/sock

我正在使用ubuntu 14.04中的eclipseindigo版本处理postgresql 9.4.0源代码。我面临将客户端进程附加到postgresql server的问题

我正在遵循此链接中给出的步骤

我在同一个用户ravi下运行eclipse和客户机

下图显示了有关eclipse中调试配置和运行配置的信息

我正在客户端中使用select pg_backend_pid命令将其连接到服务器

但是每次我这样做的时候都会出现以下错误

在/build/buildd/eglibc-2.19/socket/./sysdeps/unix/sysv/linux/x86_64/recv.c中找不到源文件 找到文件或编辑源查找路径以包含其位置

上述错误是否与我的OSubuntu 14.04或eclipse本身有关,或者我没有正确连接客户端进程,或者postgres本身的安装有问题


请提供帮助。

您似乎已经解决了pgsql黑客上提到的问题,因为您的屏幕截图显示了连接到postgres后端的部分模糊调试会话,其中堆栈可见

这只是调试C程序101的一个问题:您的系统上没有eglibc的源代码,并且顶层堆栈框架在eglibc中。因此Eclipse无法向您显示源代码。这并不重要,除非你对eglibc到底在做什么的细节感兴趣——而且因为它可能只是在一个系统调用中,你最喜欢的是不感兴趣


在堆栈中进一步返回到PostgreSQL自身中的第一帧,它应该会显示相关的PostgreSQL源代码行。如果没有,您可能必须设置源路径。或者只设置您想要的断点并继续执行,因为您可能刚刚在套接字读取调用中停止。

也已发布到pgsql黑客邮件列表,请参阅线程。对不起,先生,我找不到您,我们如何返回到第一帧?您能告诉我如何设置源路径吗?我想这就是错误所在。@user3037781您不能将源路径设置为您没有的源。您几乎肯定没有eglibc源代码。你也不需要它们。这个错误无关紧要,因为您不关心eglibc。跳转到更高的堆栈帧。我直接使用gdb,不是通过Eclipse,所以我不能确切地告诉您如何使用,但如果我不得不猜测,我会说您向下滚动,然后双击感兴趣的堆栈帧。@user3037781所以在Thread[1]下面,它说uu libc_recv这是一个系统调用,然后recv等等-这些是堆栈帧,即嵌套函数调用。它们从最深到最浅排列,所以main通常位于底部。每个框架都显示它所属的可执行或库,如libc或postgres。找到第一个有postgres的,然后双击它,查看你在程序中的位置。我认为你需要学习调试程序的基础知识,因为这实际上是最基本的开始。@ravikiran不知道你在调试过程中试图完成什么,我不可能说。听起来好像你找到了一个带有源代码的堆栈框架。@ravikiran如果你正在尝试单步执行代码,那么是的。现在阅读一些关于调试器使用的文档-单步执行/单步执行、断点、堆栈跟踪、变量检查等。老实说,调试器不是研究联接的方法。。。阅读源代码和注释非常重要。