在eclipse中附加客户端进程

时间:2014-12-28 13:27:42

标签: eclipse postgresql debugging gdb eclipse-cdt

我在ubuntu 14.04中使用eclipse(indigo版本)处理postgresql 9.4.0源代码。我正面临将客户端进程附加到postgresql服务器的问题。

我正在按照此链接https://wiki.postgresql.org/wiki/Working_with_Eclipse#Debugging_PostgreSQL_from_Eclipse

中给出的步骤进行操作

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

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

Details of the debug configuration

details of run configuration

我正在使用命令"选择pg_backend_pid()"在客户端将其附加到服务器。

但每次我这样做时都会收到以下错误。

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

上述错误是否与我的操作系统(ubuntu 14.04)或eclipse本身有关,或者我没有正确附加客户端进程,或者安装postgres本身有什么问题。

请帮助。

1 个答案:

答案 0 :(得分:0)

看起来你已经超越了pgsql-hackers上提到的问题,因为你的截图显示了一个部分模糊的调试会话附加到postgres后端,堆栈可见。

这只是一个"调试C程序101"问题:您的系统上没有eglibc的源代码,顶部堆栈框架位于eglibc中。因此Eclipse无法向您展示源代码。除非您对eglibc正在做什么的细节感兴趣,否则这并不重要,因为它可能只是在系统调用中,所以您最不感兴趣。

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