Не могу установить точки останова при использовании GDB в Emacs (или DDD) - PullRequest
2 голосов
/ 15 февраля 2012

Я пытаюсь использовать GDB с Emacs. Библиотека, которую я пытаюсь отладить, загружается процессом и не может быть запущена напрямую. Поэтому я присоединяюсь к процессу, используя команду attach внутри gdb. Присоединение к процессу и установка точек останова работает хорошо, когда я использую gdb из оболочки, но когда я использую gdb в emacs (нажав M-x gdb или M-x gud-gdb), он не может устанавливать точки останова. Это показывает мне ошибку, которая говорит: «Не удается получить доступ к памяти в 0x7efb04». Я использую Emacs 23.1.1.

Вот описание процесса, которому я следую:

  1. Нажмите M-x gdb или M-x gud-gdb, чтобы запустить GDB внутри Emacs.
  2. Введите имя исполняемого файла, созданного с помощью символов отладки.
  3. Введите "attach [PID]", чтобы присоединить gdb к запущенному процессу.
  4. Установите точку останова, набрав: filename: номер строки.

На последнем шаге выдается сообщение об ошибке «Не удается получить доступ к памяти по адресу 0x7efb04».

Есть идеи, почему это происходит?

РЕДАКТИРОВАТЬ: я получаю ту же ошибку при использовании DDD (пользовательский интерфейс для GDB). Так что я думаю, что это не специфическая проблема emacs.

Ответы [ 2 ]

0 голосов
/ 01 марта 2012

Я понял это.Проблема в шаге 2. Ввод имени исполняемого файла, созданного с символом отладки, вызывает проблему.Вместо этого просто запуск GDB и подключение к процессу работает нормально.Я не уверен, является ли это ожидаемым поведением.

В DDD исполняемый файл с символами отладки должен быть открыт прежде, чем мы сможем присоединиться к процессу.Я не знаю, как обойти это в DDD.

0 голосов
/ 15 февраля 2012

Скомпилированы ли вы с отладочной информацией?У вас есть код, который показывает проблему?Это происходит и в других IDE?

...