postgresql 可以调试Apache AGE的make installcheck吗?

roejwanj  于 2023-05-17  发布在  PostgreSQL
关注(0)|答案(5)|浏览(135)

我正在为Apache AGE开发,我经常使用make installcheck命令来测试我刚刚做的事情。
我想知道是否有一种方法可以在GDB或任何其他工具下调试这个命令,并在我想要的地方设置断点。那会让我的生活轻松很多。
我试过gdb --args make installcheck,但似乎不起作用。

编辑:

我已经知道如何使用GDB,我想知道的是,当我在Apache AGE目录的根目录上给予命令make installcheck时,我是否可以调试所做的测试。

vfhzx4xs

vfhzx4xs1#

嘿,我已经创建了一篇关于如何通过GDB调试VSCode添加的函数的文章,步骤如下:
1.启动postgres服务器
1.通过psql会话连接
1.获取该后端进程的pid

SELECT pg_backend_pid();

1.在函数上或任何你想要的地方设置断点
1.通过单击F5开始调试VS代码,并写入从psql会话中获得的进程id
1.将命令写入psql会话(调用您的函数进入该会话并到达您设置的断点
1.有一个良好的调试日<3
演示:

您也可以查看博客条目:

k2fxgqgv

k2fxgqgv2#

下面是调试扩展的方法。首先,您要启动postgres服务器(我假设您已经知道了),然后使用以下命令ps aux | grep postgres
找到表示postgres的进程:空闲,然后使用第二列中的数字:sudo gdb -p <insert number here>你就完成了!你可能想了解更多关于gdb调试器的信息,比如设置断点,检查值等。这样你就能更舒服了

mwkjh3gx

mwkjh3gx3#

我相信make命令没有,但是一种方法是,正如其他人所说的,运行一个postgres示例,获取后端pid,将其附加到gdb,然后为回归测试调用的函数设置断点,然后执行回归测试中的相同查询。
您还可以阅读regression/regression.diffs,以查看测试和输出文件之间的变化。

brvekthn

brvekthn4#

正如其他人所说,您可以使用GDB或读取regression.diffs文件。你可以做的另一件事是阅读测试本身。它们位于regress/文件夹中。它们的组织方式是在regress/内部有两个文件夹:一个称为SQL,另一个称为Expected。如果您检查它们,您会注意到其中的文件具有镜像名称。这是因为expected/中的文件包含sql/中查询的结果,或者如果测试通过,查询应该是什么。要调试make installcheck,您可以尝试在其中一个sql文件中添加自己的查询,并在其中一个.out文件中添加预期结果。命令make installcheck将检查它们是否都匹配。

rqdpfwrv

rqdpfwrv5#

为了检查installcheck中的错误,您可以检查regression.diff文件,该文件包含预期结果和实际结果之间的所有差异。如果你想进一步调试查询,你可以从expr.sql复制查询,然后在postgres示例中执行它们。This article详细提到了如何使用gdb进行agedb。

相关问题