Использование интеграции 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.