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

问题描述 投票:0回答:1

我尝试在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
c++ postgresql macos testing lldb
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.