如何调试使用 guix 安装的 C 程序?

How can I debug a C program installed using guix?

我使用 guix 安装了 flatpak,但它在启动时出现段错误。我想调试它,但是 guix 为 flatpak 安装了一个包装器脚本,所以当我尝试在 gdb 下 运行 它时出现这个错误:

"/home/user/.guix-profile/bin/flatpak": not in executable format: file format not recognized

并且我尝试编辑包装脚本以调用 gdb,但是这个包装脚本甚至不能由 root 编辑,因为它由 root 拥有并且具有只读权限。

只需将脚本复制到您当前的工作目录:

cp /home/user/.guix-profile/bin/flatpak .

将其标记为可写:

chmod +w flatpak

使用您喜欢的文本编辑器编辑脚本,将字符串 exec -a 替换为 exec gdb --args

最后,运行 它与您之前提供的任何参数,当它行为不当时:

./flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo

在这种特殊情况下,这并不是立即超级有用,因为尚未为此包构建 debug symbol output。但至少我可以从 gdb 中得到回溯。