Может ли кто-нибудь сказать мне, как запустить ndk-gdb из emacs с помощью gdb-mode? В настоящее время я запускаю его в буфере оболочки. Я бы хотел, чтобы это способ автоматической синхронизации буфера исходного файла с текущим компьютером в gdb, когда я прерываю или шагу. Что-нибудь еще, например, установка перерывов из источника, буферов, отображающих локальные локали gdb и т.д., А ключевые ссылки для команд gdb будут подливы.
Справочная информация. Я разрабатываю в GNU Emacs 23.1.90.1 (i386-apple-darwin10.5.0, NS apple-appkit-1038.35) 2010-12-15 на OSX 10.6.6 с Android-режимом, используя андроид- ndk-r5b и смешанный код java/c/С++ для целевой Android.
Android-режим и оболочка (запуск ndk-gdb) в emacs позволяют мне видеть практически все, что мне нужно, но моя настройка была бы более удобной, если бы я мог получить исходный буфер для синхронизации с отладчиком или получить эквивалент о том, что описано в EmacsWiki здесь.
FYI, в настоящее время я использую eclipse для отладки и разработки на стороне Java, но считаю его неустойчивым и трудно настраиваемым для собственной работы, несмотря на наличие sequoyah, и, кроме того, eclipse не emacs.
[приложена]
Запуск M-x gdb с ndk-gdb в качестве команды gdb (см. ниже) приводит к созданию буфера, называемого gud, с помощью текстового выражения: "(Debugger: run [initializing...])". Буфер не принимает команды gdb и не принимает команды emacs gdb - (M-s, M-n и т.д. Приводят к < >
Выход:
Current directory is /Users/jpschelter/ Android NDK installation path: /Developer/android-ndk-r5b Using specific adb command: /Developer/android-sdk-mac_x86/platform-tools/adb ... ... ... ... (no debugging symbols found) warning: Unable to find dynamic linker breakpoint function. GDB will be unable to debug shared library initializers and track explicitly loaded dynamic code. 0xafd0e21c in nanosleep () from /Developer/Projects/ECS/DIGG/Projects/droid/obj/local/armeabi/libc.so (gdb) Undefined command: "1-inferior-tty-set". Try "help". (gdb) Undefined command: "2-gdb-set". Try "help". (gdb) Undefined command: "3-gdb-set". Try "help". (gdb) Undefined command: "4-file-list-exec-source-files". Try "help". (gdb) Undefined command: "5-file-list-exec-source-file". Try "help". (gdb) Undefined command: "6-gdb-show". Try "help". (gdb) Undefined command: "7-stack-info-frame". Try "help". (gdb) Undefined command: "8-thread-info". Try "help". (gdb) Undefined command: "9-break-list". Try "help".
Буферы, называемые *threads of*
, *input/output of*
и *breakpoints of*
, также создаются, но являются пустыми.
Просмотр через источник gdb-mi.el моих emacs и сравнение с выходом gdb-debug-log, похоже, что gdb-mi пытается отправить эти параметры в исполняемый файл gdb, но gdb-server не отвечает на команды, как ожидалось?
Обратите внимание, что запуск Mx gud-gdb с командной строкой для ndk-gdb приводит к эквиваленту запуска ndk-gdb внутри оболочки, поэтому проблема, похоже, находится в конфигурации gdb-mode в emacs.