Как я могу отладить программу на C, установленную с помощью guix?

Я установил flatpak с помощью guix, но при запуске произошел сбой. Я хотел отладить его, но guix устанавливает сценарий оболочки для flatpak, поэтому я получаю эту ошибку при попытке запустить его под gdb:

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

и я попытался отредактировать сценарий оболочки для вызова gdb, но этот сценарий оболочки даже не редактируется root, потому что он принадлежит root и имеет разрешения только на чтение.

1 ответ

Решение

Просто скопируйте скрипт в ваш текущий рабочий каталог:

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

В данном конкретном случае это не сразу оказалось супер-полезным, потому что вывод отладочного символа не был создан для этого пакета. Но, по крайней мере, я мог получить обратную трассировку из gdb.

Другие вопросы по тегам