解决 postgres 的调试符号

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

我正在致力于在 citus 上添加新扩展,并且正在通过针对集群运行 ycsb 工作负载来收集和分析扩展、postgres、citus 和其他库的堆栈跟踪。我使用 perfcollect 来收集并使用 perfview 来查看堆栈跟踪。在 postmaster 进程的跟踪中,我发现了很多“未知”模块,我认为它们是未解析的 postgres 符号 -

unknown_symbols_png

我已经尝试了几种方法来解决这些符号 -

  1. 使用配置文件的调试标志从源代码构建 postgres (--enable-debug, CFLAGS = -ggdb -O0 -g)

  2. 使用 yum 包管理器构建 postgres - 这会在不同的文件夹中构建调试符号和可执行文件,因此必须使用 eu-unstrip 命令将符号和可执行文件合并到单个文件中

  3. 使用调试符号构建扩展

这些都没有帮助我解决使用 perfcollect 时的未知符号。然而,当尝试使用具有 postgres 特定 PID 的 linux perf 工具收集跟踪,然后使用 Firefox profiler 工具查看跟踪时,我看到的未知模块要少得多 - 但有些模块仍然存在。

还有什么办法可以解决这些未知符号吗?

postgresql debug-symbols citus
1个回答
0
投票

以下命令对我有用 ./configure --enable-cassert --enable-debug CFLAGS="-ggdb -Og -g3 -fno-omit-frame-pointer"

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