¿Alguien puede decirme cómo ejecutar ndk-gdb desde dentro de emacs usando gdb-mode? Actualmente lo estoy ejecutando en un shell buffer. Lo que me gustaría tener es una forma de sincronizar automáticamente un buffer de archivos fuente con la pc actual en gdb cuando rompo o paso. Algo más, como establecer saltos desde el origen, los búferes que muestran gdb locales, etc., y los atajos de teclas para los comandos de gdb serían gravy.Integración de ndk-gdb de android ndk con emacs?
Antecedentes: Estoy desarrollando en GNU Emacs 23.1.90.1 (i386-apple-darwin10.5.0, NS apple-appkit-1038.35) de 2010-12-15 en OSX 10.6.6 con modo android, usando android -ndk-r5b y código mixto java/c/C++ para un destino de Android.
Android-mode y shell (ejecutando ndk-gdb) dentro de emacs me permiten ver casi todo lo que necesito, pero mi configuración sería más conveniente si pudiera obtener un buffer fuente para sincronizar con el depurador, o obtener el equivalente a lo que se describe en EmacsWiki here.
FYI, Actualmente estoy usando eclipse para la depuración y desarrollo del lado de Java, pero es inestable y difícil de configurar para el trabajo nativo, a pesar de la disponibilidad de sequoyah, y además, eclipse no es emacs.
[Appended]
Ejecución de GDB Mx con NDK-BGF que el comando gdb (ver más abajo) se traduce en un buffer llamado Bueno sin contar con decir una modeline "(depurador: ejecutar [... inicialización]) ". El búfer no acepta comandos de GDB, ni acepta comandos de Emacs GDB - (MS, Mn, etc. resultado en <>
Salida:
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".
tampones llamados *threads of*
, *input/output of*
y *breakpoints of*
también se crean, pero están vacías.
navegación a través de la fuente de gDB-mi.el de mis emacs, y comparando con el gDB-debug-log de salida, parece que gDB-mi está intentando enviar estos parámetros para un ejecutable de gDB, pero el servidor gdb no responde ing a los comandos como se esperaba?
Tenga en cuenta que ejecutar Mx gud-gdb con la línea de comando para ndk-gdb parece dar como resultado el equivalente de ejecutar ndk-gdb dentro de un shell, por lo que el problema parece estar dentro de la configuración de gdb-mode en emacs .
Así que mi interpretación aquí es que ndk-gdb se ejecuta correctamente, pero que '** gdb-mode ** de emacs está interpretando comandos y no se está comunicando correctamente con ** gdb-server **, que es el lado del host de la conexión de depuración. – forksandhope