Использование интеграции gdb-i=mi в emacs 24
Я проверяю segfault в одном из наших приложений. Короткое время после запуска приложения, главное gdb
строка состояния изменяется на:
(отладчик: выполнить [сигнал-получен])
A (gdb)
появится приглашение, но содержимое всех остальных окон останется неизменным (пустым). Ввод чего - либо в командной строке ничего не делает -gdb
кажется, висит. Выполнение тех же шагов на command line
результаты в ожидаемом выходе из gdb
с a полный и правильный след.
это моя первая отладка с -i=mi
интеграция между emacs
и gdb
. Я использую emacs
24.2 и gdb
7.5.
есть какие-либо предложения о том, как я могу отлаживать это в дальнейшем?
можно ли снизить уровень интеграции? Это позволит мне определить, какая область вызывает проблему?
последний момент заключается в том, что начальная загрузка приложения занимает около 70-х годов по сравнению с 3С от command line
.
3 ответов
время загрузки можно уменьшить, установив gdb-create-source-file-list
до nil
(используйте настраивать). См. документацию о том, что это делает и почему это существенно увеличивает время загрузки в некоторых случаях.
можно использовать M-x gud-gdb
использовать старый режим gud (т. е. без mi
взаимодействия). Менее причудливый, но более надежный.
получается, что gdb-ui
из emacs 23 по-прежнему будет работать в emacs 24:
- текст
gdb-ui
(в моем случаеgdb-ui.el.gz
иgdb-ui.elc
из резервной копии) - поместите их в каталог (я добавил
~/emacs-modes
)
затем добавьте следующее к вашему .в Emacs:
(add-to-list 'load-path "~/emacs-modes")
(require 'gdb-ui)
под управлением gdb
теперь будет использовать старые --annotate=3
режим а не -i=mi
.