如何在PostgreSQL中调试回归测试二进制pg_regress?

时间:2018-12-30 00:19:01

标签: c++ postgresql macos testing lldb

我试图在Mac上使用lldb在postgreSQL中调试pg_regress。但是,当我使用lldb运行pg_regress时,测试失败并报告:“未能等待子进程:系统调用中断”

我定制了一个只有一个测试SQL的测试计划文件。当我执行make check时,回归测试通过了。

以下是通过Clion用lldb调试时的输出:

============== removing existing temp instance        ==============
============== creating temporary instance            ==============
============== initializing database system           ==============
============== starting postmaster                    ==============
running on port 60848 with PID 16262
============== creating database "regression"         ==============
CREATE DATABASE
ALTER DATABASE
============== running regression test queries        ==============
test some_test               ... failed to wait for subprocesses: Interrupted system call

Process finished with exit code 2

预期结果应为

============== removing existing temp instance        ==============
============== creating temporary instance            ==============
============== initializing database system           ==============
============== starting postmaster                    ==============
running on port 60848 with PID 16262
============== creating database "regression"         ==============
CREATE DATABASE
ALTER DATABASE
============== running regression test queries        ==============
test some_test               ... ok

1 个答案:

答案 0 :(得分:0)

我终于找不到使用gdb调试多进程pg_regress的方法。调试它的唯一方法是使用基本的printf命令。如果有人知道如何使用gdb或lldb跟踪多进程程序,请提供答案。