2010-01-28 22 views
31

En general VEO del proceso de pid que se ejecuta en segundo plano y se inicia dbx en ese proceso con el comando dbx -a <pid>comenzar GDB usando un pid

de manera similar cómo podría hacerlo usando GDB?

Respuesta

33

Hay dos maneras.

Desde la línea de comandos, incluyen el pid como argumento después de que el nombre del ejecutable:

gdb /path/to/prog PID 

Desde dentro de gdb, puede utilizar el comando de unión:

gdb /path/to/prog 
gdb> attach PID 

Mientras que el especificando en el línea de comandos es más conciso, existe un ligero riesgo de que si tiene un archivo central que tiene un nombre que es el mismo que el pid (es decir, para el pid 2345, el archivo central debería llamarse "2345") entonces gdb lo hará abra el archivo de núcleo. Es cierto que la posibilidad de que esto ocurra es minúscula.

3

Desde la página del BGF:

se puede, en cambio, especificar un ID de proceso como un segundo argumento, si desea depurar un proceso en ejecución:

gdb program 1234 
42

Además de la anterior se puede utilizar directamente

gdb -p <pid> 
+0

Esta es la respuesta correcta. Adjuntar GDB a un PID no debe implicar de ninguna manera especificar la ruta al ejecutable. La solución correcta implicará solo PID y nada más. – AnT

Cuestiones relacionadas