使用 Apache Age - MACOS 附加调试器

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

我正在尝试使用调试器在 MacOS 上调试我的代码。我尝试附加 gdb 调试器,但它不起作用,并且在终端中运行 gdb 返回以下错误:

syed@syeds-mbp ~ % gdb
zsh: command not found: gdb

如何将 AGE 附加到 gdb 等调试器以用于开发目的?

postgresql debugging gdb lldb apache-age
2个回答
0
投票

经过一些研究,我发现 Apple 从 gcc 切换到 clang,并停止在 MacOS 中包含 gdbclang 的调试器是 lldb(低级调试器),可在 MacOS 中使用。

注意:确保在 PostgreSQL 配置中启用了调试并设置了 lldb 标志。如果没有,请运行以下命令:

./configure --enable-debug --enable-cassert --prefix=$(pwd) CFLAGS="-glldb"

将 lldb 附加到 PostgreSQL 进程的步骤:

  1. 打开一个新终端并输入以下内容:
ps auxwww | grep postgres | grep -v grep

此命令会过滤掉当前正在运行的进程,并仅返回其中包含单词“postgres”的进程。复制 postgres 进程的 PID

  1. 通过在终端中键入以下命令来启动 lldb 来运行 lldb。
lldb
  1. 通过运行以下命令将您的 postgres 进程附加到 lldb:
attach PID      //replace PID with your postgres PID

您现在可以使用 lldb 进行类似于 gdb 的调试。


0
投票

首先,你需要使用homebrew安装gdb:

brew install gdb

之后使用 GDB 运行 Apache AGE 服务器并启用 调试符号

gdb -ex run --args age <AGE_ARGUMENTS>

此外,您还可以使用 GDB 命令设置断点并检查代码。

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