¿Cómo paso un argumento de línea de comandos al iniciar GDB en Linux?


Tengo que depurar un programa que tiene errores como parte de mi asignación. Sin embargo, primero debo pasar argumentos de la línea de comandos para resolver este problema.

Lo hago:

gdb -tui InsertionSortWithErrors

Que funciona, pero después de eso no se como pasar argumentos. Usé gdb -help y dice algo sobre --args que también intenté y no funcionó.

Quiero ser capaz de obtener el depurador+la gui y pasar argumentos de la línea de comandos.

Author: Kevin Panko, 2013-01-24

4 answers

Una vez que se inicia gdb, puede ejecutar el programa utilizando "r args".

Así que si está ejecutando su código por:

$ executablefile arg1 arg2 arg3 

Depurar en gdb por:

$ gdb executablefile  
(gdb) r arg1 arg2 arg3
 154
Author: ldav1s,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-08 22:12:10

Intenta

gdb --args InsertionSortWithErrors arg1toinsort arg2toinsort
 76
Author: Basile Starynkevitch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-24 06:08:17

Estoy usando gdb 7.1.1, como --help muestra:

Gdb [options] arg archivo-ejecutable-args [argumentos-inferiores ...]

En mi humilde opinión, el orden es un poco poco intuitivo al principio.

 18
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-16 07:10:37

Otra opción, una vez dentro de gdb shell, antes de ejecutar el programa, puede hacer

(gdb) set args file1 file2

E inspeccionarlo con

(gdb) show args
 14
Author: Fernando Gonzalez Sanchez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-10 17:59:30