¿Alguna vez haz querido depurar uno de tus productos creados con Delphi for Win32, Delphi for .NET o C++ Builder pero de forma remota, por que haz notado alguna anomalía que solo se presenta en algunas maquinas… pero no en la que tienes tu RAD instalado?, pues si, algunas veces eso es necesario y lo primero que se nos puede pasar por la mente es “Instalemos el RAD en esa maquina y hagamos el debugger desde ahí”, pero por hoy en día eso no es legal, tampoco es practico y en el acto perderemos mucho tiempo.
Por eso RAD Studio tiene una practica solución llamada “Remote Debugger for CodeGear RAD Studio”, que nos facilita la vida en ese sentido enormemente, ya que nos permite depurar aplicativos instalados en maquinas remotas sin necesidad de instalarles el IDE.
Veamos como hacer para que funcione esta característica…
Antes de cualquier cosa lo que hay que hacer es conseguir el instalador del “Remote Debugger for CodeGear RAD Studio”, el cual encontraremos en la web de descargas para usuarios registrados, en el DVD del RAD Studio o si no están disponibles ninguna de las dos opciones, también encontraremos los archivos necesarios en la propia carpeta de instalación de nuestro RAD Studio (Mas adelante explicaré que debemos hacer en este ultimo caso).
Proceso de instalación
- Si conseguiste el instalador, la cosa es muy sencilla, solo es cuestión de instalar en la maquina remota el “Remote Debugger”, haciendo doble click sobre el instalador y siguiendo el asistente paso a paso.
- Si no están disponibles los instaladores, solo será cuestión de buscar unos cuantos archivos, copiarlos en una carpeta que deberá estar creada en la maquina remota (Puede ser cualquier carpeta o incluso en la misma System32) y listo. Dichos archivos son los siguientes:
- rmtdbg105.exe
- bccide.dll
- bordbk105.dll
- bordbk105N.dll
- comp32x.dll
- dbkpro100.dll
- dcc100.DLL
Esos archivos regularmente están en la carpeta BIN de nuestro RAD Studio, adicionalmente al paso anterior, hay que registrar las Dlls bordbk105.dll y bordbk105n.dll en la maquina remota, por medio del regsvr32.exe, por ejemplo… en Windows XP sería así:
Entramos a la linea de comando (Inicio|Ejecutar|Escribimos cmd o command.com según sea el caso) y ejecutamos las dos instrucciones siguientes:
C:\Windows\System32\regsvr32.exe bordbk105.dll
C:\Windows\System32\regsvr32.exe bordbk105n.dll
Preparándonos para la depuración remota
Para realizar la depuración remota hay que tener en cuenta varias cosas…
- En la maquina local debemos tener el código fuente, el IDE instalado y claro, la posibilidad de compilar dicho código fuente.
- En la maquina remota, no es necesario, tener el IDE instalado, solo el “Remote Debugger”, tal y como lo expliqué en el punto anterior.
- En ambas maquinas (Tanto la local, como la remota), deben estar los ejecutables del aplicativo y los archivos llamados “Symbol files” que le sirven al depurador, para obtener información valiosa acerca de el proyecto a depurar (numero de lineas, nombres de unidades, tipos y declaración de variables, etc…).
Pero bueno, ¿Como generar los “Symbol files” y que hago con ellos exactamente?
Es muy fácil, para generar dicho archivo solo hay que ir a las opciones del proyecto Shift+CTRL+F11 (O lo que es lo mismo Project|Options), seleccionar el nodo Linker, activar la opción “Include remote debug symbols” y compilar el proyecto… esto generará un archivo con el nombre de tu proyecto, en la misma carpeta donde se genera tu ejecutable…

La extensión de dicho archivo dependerá del lenguaje con que estemos trabajando, la tabla correspondiente es la siguiente:
| Delphi for Win32 | .rsm |
| Delphi for .NET | .rsm and .pdb |
| C++ | .tds |
| C# | .pdb |
- Vamos de nuevo a las opciones del proyecto, Shift+CTRL+F11 (O lo que es lo mismo Project|Options), abrimos el nodo llamado “Debugger” y seleccionamos el nodo Symbol Tables.
- En la opción “Debug symbols search path” colocamos la ruta de donde se encuentra nuestro “Symbol file”, en la maquina local.

- Click en Ok.
Luego copiamos nuestro ejecutable y el “Symbol file” en la maquina remota, pero en la misma carpeta y ya estamos casi listos para depurar nuestra aplicación remota.
Estableciendo la conexión
La conexión entre la maquina local y la maquina remota, se hace mediante el protocolo TCP/IP, la conexión usa múltiples puertos que son asignados de forma dinámica por parte de Windows. De manera pues, que hay que tener cuidado, ya que un cortafuegos podría eliminar la comunicación. De hecho el mismo corta fuegos de Windows podría estropearlo todo, pero para solucionarlo solo tendríamos que decirle que incluya dentro de sus excepciones el “CodeGear remote debugging”.
Para establecer una conexión hay que seguir los siguientes pasos:
- Una vez copiados los archivos, ejecutable y “symbol file” en la maquina remota, debemos ejecutar el “Remote Debugger” e indicarle que debe abrir un puerto y estar a la espera de una “señal”. ¿Como hacer eso?:
- En la maquina remota, vamos a la linea de comandos, buscamos el archivo rmtdbg105.exe (Sea que se haya instalado por medio del asistente o lo hayamos hecho manualmente) y lo ejecutamos con el parámetro listen, así:
- rmtdbg105.exe -listen
- En la maquina local, vamos al menú del IDE “Run|Attach to Process” y en “Remote Machine” le escribimos el nombre o dirección IP de la maquina remota.

- Presionamos Refresh y verificamos que en la lista se vean los procesos de la maquina remota.
- En la maquina remota, vamos a la linea de comandos, buscamos el archivo rmtdbg105.exe (Sea que se haya instalado por medio del asistente o lo hayamos hecho manualmente) y lo ejecutamos con el parámetro listen, así:
Hasta aquí ya verificamos que hay conexión con la maquina remota y que por el lado de la comunicación estamos bien.
Paso final, depurar remotamente
Como ya establecimos comunicación con nuestra maquina remota, ahora solo es cuestión de seguir unos cuantos pocos pasos mas…
- Ir al menú de nuestro IDE, Run|Load Process|Remote.
- En “Remote path”, colocamos la ruta de donde se encuentra nuestro ejecutable en la maquina remota, por ejemplo:
- C:\RD\Project1.exe.
- En “Remote host” escribimos el nombre o la dirección IP de la maquina remota.

- Luego hacemos Click en el botón Load, y listo, ya podemos Depurar nuestra aplicación remota, como si se tratara de una local.
Nota: La conexión entre el RAD Studio y el “remote debug” es una simple apertura de un socket por medio de TCP/IP, no tiene encriptamiento, ni soporte de autenticación. De manera pues, que hay que procurar que la maquina que tendrá instalado el “Remote Debbuger” sea una maquina a la que no puedan acceder “clientes indeseados”.
Nota2: La información que encuentras en este articulo, la tome totalmente de un tópico de la ayuda de RAD Studio, mas exactamente en la dirección de tópicos
ms-help://borland.bds5/devcommon/debugremoteov_xml.html,
de hecho, notarás que he traducido partes del mismo, por lo que recomiendo que vayas a ese tópico de la ayuda, además también porque ahí encontraras toda esta información y un poco mas.
Espero que este articulo les haya gustado y que ademas les sea de utilidad.
Hasta la próxima.
Nota: Este articulo es uno de los pocos que pude recuperar. Espero que todavía les sea de utilidad.














He tenido que usar esa opción un par de veces y en ambas fue un acierto que nos hizo resolver el problema en un momento.
Hace años de eso y perdí las notas de cómo hacerlo, ahora estas me las guardo e imprimo, jejeje
En aquellas ocasiones lo hice con delphi 5
Ahhh que bien, me alegra mucho servir de algo
Gracias JhonnySuárez, estas cosas siempre vienen bien. Al igual que Casimiro…. Imprimo y guardo…
Qué bien Terry Yapt, me alegra mucho que también te haya sido de utilidad el articulo