我尝试在mac上使用lldb在postgreSQL中调试pg_regress。但是,当我使用lldb运行pg_regress时,测试失败并报告:“无法等待子进程:系统调用中断”
我定制了一个只有一个测试SQL的测试计划文件。当我执行make check时,回归测试通过了。
下面是使用lldb通过Clion进行调试时的输出:
============== 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
我终于找不到使用gdb来调试多进程pg_regress的方法。调试它的唯一方法是使用基本的printf命令。如果有人知道如何使用gdb或lldb来跟踪多进程程序,请提供答案。