如何调试使用 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 中得到回溯。
我使用 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 中得到回溯。