2011-02-16 8 views
10

Recientemente publiqué this question sobre mi incapacidad para obtener Delphi 2010 trabajando con la depuración remota. No he tenido éxito y decidí publicar una sencilla técnica de prueba paso a paso que podría resaltar lo que estoy haciendo mal. ESTO ES REALMENTE IMPORTANTE para mí: utilicé Delphi desde V1.0 y me gano la vida con él. Estar atrapado así es un dolor y me mantiene en Delphi 7.Depuración remota de Delphi 2010: no se han podido obtener puntos de interrupción que funcionen

De todos modos, aquí va.

  1. Asegúrese de que Delphi 2010 tiene actualizaciones 4 & 5.

  2. fuego hasta Delphi 2010, después Archivo | Nuevo | Aplicación VCL Forms. Ponga un botón en el formulario, ponga 'ShowMessage (' hello ') en el botón Evento OnClick. Guarde el proyecto y su unidad en una carpeta local "C: \ scratch". Construye el proyecto, ejecútalo, haz clic en el botón, aparece 'hola', todo bien.

  3. En una PC en red (194.168.1.64), cree una nueva carpeta "c: \ DebugTest" y compártala con acceso R/W.

  4. En 194.168.1.64 instale el Depurador Remoto desde la descarga más reciente en el sitio web de Embarcadero (RemoteDebugger_upd2.exe). Haga clic en rmtdbg140.exe para ejecutar. Acepte el mensaje 'desbloquear' del cortafuegos.

  5. Editar la configuración del compilador de configuración versión de depuración con el directorio de salida = \ 192.168.1.64 \ DebugTest y el directorio de salida de la unidad = c: \ cero - ver Compiler settings

  6. Editar la configuración de Enlace para establecer información de depuración = True , Incluir símbolos de depuración remota = Verdadero. Consulte Linking settings

  7. Deje los ajustes de compilación en los valores predeterminados. Ver Compiling settings

  8. Hacer una compilación completa. El proyecto correspondiente exe 'project2.exe' y 'project2.rsm' aparecen en la carpeta remota \ 192.168.1.64 \ DebugTest. Los puntos azules son visibles en la Unidad 2 en el IDE.

  9. Establezca un punto de interrupción en la línea 'ShowMessage' (el botón evento OnClick).

  10. Use 'Ejecutar' | 'Cargar proceso' con Remote path = c: \ DebugTest \ Project2.exe, Host remoto = 192.168.1.64 y Directorio de trabajo = c: \ DebugTest ver Load Process remote tab

  11. Haga clic en 'Cargar'. El punto de interrupción visible se desactiva inmediatamente, el proyecto se inicia y abre la ventana de la CPU y se detiene. Presionando f9 hace que el exe se ejecute completamente en la máquina remota, el botón funciona, simplemente no puede depurarlo.

He intentado varias cosas "obvias" como el firewall apagado, pero todo fue en vano. ¿Podría una persona amable sugerir más ideas?

Muchas gracias.

+3

Estoy atascado con Delphi 2007 Remote Debugger también. http://stackoverflow.com/questions/4893722/delphi-remote-debugger-freezing-up –

+0

Estoy bastante seguro de haber hecho esto con D2010. Mi forma de trabajar es diferente de la # 9 en: Comienzo el debugee haciendo doble clic en Windows Explorer (en la computadora remota). Luego camino a mi computadora de desarrollo y me conecto al proceso. Luego configuro el punto de interrupción y presiono F9 para que el debugee continúe funcionando. – Giel

+0

IIRC debe usar '\\ 192.168.1.64 \ DebugTest' en los campos 'Ruta remota' y 'Directorio de trabajo' del cuadro de diálogo 'Remoto' con esta configuración. –

Respuesta

5

¿Qué sistema operativo Windows? Tal vez ejecute rmtdbg140.exe como administrador.

Ejecuto la depuración remota D2010 en XP versus XP.Mi How-To está en http://blog.runbits.com/post/Remote-debugging-Delphi.aspx

+0

Sí, vi su información útil y seguí sus pasos exactamente porque quería llegar a su conclusión "puede establecer puntos de interrupción o todo lo demás durante la depuración normal. Y esto es todo". Sin suerte. Estoy ejecutando Windows XP-32 bit como un objetivo y he ejecutado rmtdbg140.exe desde una ventana de comandos usando Ejecutar como administrador. Gracias por tus comentarios. " –

+1

Subo una pequeña demostración - http://blog.runbits.com/img/remote-debugger/remote.zip - probé desde XP3 Prof nuevamente Windows 2000 (en VmWare). Archivos cargados desde How-to para separar el disrectory , registrado como en cómo y funcionó. Todo para el depurador está en un directorio. – netcodecz

+1

bccide.dll - 14.0.3593.25826, bordbk140.dll - 140.909.17.16318, bordbk140N.dll - 140.909.17.16318, comp32x.dll - 6.21.3615.26516, DCC140.dll - 14.0.3593.25826, rmtdbg140.exe - 140.909.17.16318. Todo en un directorio - c: \ todebug – netcodecz

5

Bueno, para mí el problema ha sido resuelto ahora, aunque como 'evitar' y después de la interacción significativa con embarcadero y una actualización a XE (que también no funcionaba).

Parece que el depurador remoto es escamoso (o posiblemente simplemente quisquilloso) en su capacidad para cargar archivos rsm (símbolos remotos); todavía están investigando por qué la mina no se carga. Mi archivo rsm tiene un tamaño de alrededor de 50Mb, aunque esto no es problema para el depurador remoto de Delphi 7.

La solución consistía en actualizar a Delphi XE y luego elegir la opción del enlace del compilador 'Colocar la información de depuración en un archivo TDS por separado'. Esto parece crear un archivo tds en el destino remoto en lugar de un archivo rsm y los puntos de interrupción funcionan bien.

He enviado mis archivos rsm y tds a Embarcadero para investigar por qué esto sucede.

+1

Plus 1 y una nota de agradecimiento por publicar esto! Tenía exactamente el mismo problema con un programa relativamente complejo (COM Client/Servers, DLL + EXE). Establecer RemoteDebugSymbols False (y usar la opción TDS en su lugar), me permitió depurar remotamente. NOTA: también tuve que eliminar el antiguo archivo RSM del servidor. Curiosamente, los EXE de prueba simples fueron la depuración remota muy bien con los archivos RSM. – sse

+0

Acabo de tener el mismo problema - @sse: tuvo que eliminar el archivo .rsm remoto después de cambiar a TDS. Brillante. Gracias a ambos. –

0

Tuve este problema. La instalación de la Actualización 4 para Delphi 2010 resolvió mi problema. También aparece en la lista de problemas resueltos de la Actualización 4.

0

Es imprescindible tener la zona horaria correcta y el reloj en el sistema remoto. En mi caso, configuro la depuración remota y, cuando cargo el proceso, los puntos de interrupción se vuelven verdes. Comprobé la zona horaria y el reloj del sistema remoto, lo configuré bien y el dubugger remoto funcionó de nuevo.

Cuestiones relacionadas