utilizada purgante planta parasitos para natural malaria higado eliminarlos eliminar desparasitante cura como combatir bacterias c eclipse debugging root libpcap

purgante - planta utilizada para combatir la malaria



¿Cómo depurar la aplicación como root en eclipse en Ubuntu? (7)

Estoy programando la aplicación usando libpcap. cuando depuro la aplicación en modo normal, pcap no puede obtener el dispositivo de red. Parece que tengo que depurar la aplicación en root. ¿Cómo puedo depurar la aplicación en la raíz? Tengo la contraseña de root. Creo que eclipse tiene una opción tal que puede agregar raíz para la aplicación de depuración, pero no sé cómo hacerlo. por favor ayuda.


  1. Permita que su usuario ejecute gdb como root sin que se le solicite ninguna contraseña:
    sudo visudo
    Agregue la siguiente línea después de todas las demás reglas:
    <youruser> ALL=(root) NOPASSWD:/usr/bin/gdb
  2. Cree o modifique una configuración de depuración en eclipse para ejecutar gdb como root
    por ejemplo, en Ejecutar> Configuraciones de depuración> Aplicación C / C ++> Depuración de su proyecto:
    cambiar Depurador> Principal> Depurador GDB de gdb a sudo -u <youruser> gdb

Actualización (y advertencia):

En su comentario, nategoose señaló que esta respuesta debería venir con una advertencia:

Permitir que un usuario use sudo para gdb como se sugiere en mi respuesta, de hecho le otorga privilegios de administrador, lo que en muchos casos podría ser un efecto secundario no deseado. Por lo tanto, considero que la respuesta es adecuada en un entorno donde no se supone que el usuario intente dañar el sistema (por ejemplo, es su propia computadora personal o una máquina virtual)

Para un entorno de usuario múltiple (no confiable), creo que podría ser una mejor idea utilizar las capacidades de archivos de Unix para permitir que gdb depure una aplicación sin la necesidad de privilegios de administrador.


De la manera más fácil, intente sudo ./eclipse, luego depure como de costumbre


Desde la consola en el directorio con su ejecutable:

sudo gdb ./my_program

Si eclipse admite la depuración remota, puede hacerlo aunque se ejecute localmente.

Desde la consola:

sudo gdbserver localhost:<port_number> ./my_program

Y luego indique a Eclipse la dirección (localhost y el número de puerto que eligió).

Oh, sí, dijiste que la razón por la que hacías esto era porque libpcap , por lo que no querrás usar la depuración remota sobre TCP porque puedes terminar capturando tus paquetes de conexión de depuración además de tu otro tráfico de red.

En ese caso, realiza la depuración remota (pero realmente local) a través de un puerto serie. Nunca he hecho esto en una máquina local, pero puedes usar dos puertos seriales reales (adjuntarlos a través de un módem nulo) o intentar usar un psudoterminal:

sudo gdbserver /dev/ptmx ./my_program

Esto creará el psudo-terminal bajo /dev/pts/ pero tendrás que averiguar el nombre de él, y también podría crearlo con permisos restrictivos. Usted puede obtener alrededor de esos. A menos que esté ejecutando muchas ventanas de terminal como raíz, no es probable que tenga muchas entradas en /dev/pts que pertenecen a la raíz, así que tome nota de la que hace después de ejecutar el comando anterior y luego sudo chmod o sudo chown para que sea utilizable por su usuario normal y luego le dice a su depurador que lo use como su conexión en serie a su destino de depuración remota.


Esta pregunta se hizo hace mucho tiempo, pero si esto ayuda a alguien, abro un error en bugzilla y este breve hilo solucionó el problema: error bugzilla



Otra solución es otorgarle a usted (o al ejecutable gdb) los derechos para realizar algunas capturas de pcap como se menciona aquí . Con algo como esto:

setcap cap_net_raw,cap_net_admin=eip /usr/bin/gdb

debería poder permitir capturar paquetes en gdb sin ser root.


Puede usar gdbserver en localhost para adjuntar un proceso existente, la siguiente es la línea de comando:

sudo gdbserver :<listening port> --attach <pid>

O puede crear un nuevo proceso usando gdbserver:

sudo gdbserver :<listening port> <process executable>

Luego puede crear una configuración de depuración en Eclipse, en la pestaña del depurador, en el elemento del depurador, seleccionar gdbserver e ingresar el puerto de escucha en la pestaña de conexión en el siguiente cuadro.