Comandos De GDB
En anteriores post referentes al uso de OpenOCD nos dimos cuenta, que en lugar de pasar comandos al momento de invocarlo en la terminal, decidimos crear un archivo especial con terminacion .cfg
que contenia dichos comandos y de esa manera nos ahorraria tener que esribirlos continuamente.
Bueno pues con el uso de gdb es probable que tambien hayas notado el uso de ciertos comandos que repetimos en cada proyecto y muy probablemente te estes preguntando si se podra haser lo mismo que con OpenOCD y de ese modo evitar la fatiga.
Recordemos un poco el anterior post de Semihosting. Una vez ya compilado nuestro programa y conectados a la tarjeta con OpenOCD, era el turno de gdb.
Una manera alterna que pudimos aver empleado al momento de invocar gdb fue la siguiente
1
|
|
Como puedes ver en lugar de escribir los comandos una vez inciado gdb, aqui lo estamos haciendo al momento de invocarlo en la terminal, y para ello cada comando lo agregamos con la bandera -ex
Creo que no es tan flexible de esta otra manera. Ahora tenemos otra cadena kilometrica que escribir cada que invoquemos gdb.
Afortunadamente la solucion que se ejecuto con OpenOCD es tambien la que usaremos con gdb. crea un nuevo archivo con extension .gdb
. En la carpeta de tu proyecto por supuesto.
1
|
|
Abre el archivo y en el escribe los comandos que quieres que gdb ejcute cuando inciliza. que tal estos.
1 2 3 4 5 6 |
|
Y cuando invoquemos a gdb lo haremos de la siguiente manera
1
|
|
Mucho mejor no es asi.
Comandos
Te dire que ni siquiera has visto ni la mitad de los comandos que puedes ejecutar con gdb. Puedes echarle un ojo a esta web si gustas mas informacion.
A que no encuentras los comnados mon enable semihosting
y mon reset halt
en la pagina. Es porque estos comandos en realidad son especificos de OpenOCD. GDB puede ejecutar comandos pertenecientes al servidor que se esta usando, anteponiendo la palabra mon
( de monitor mode ). Puedes revisar los comandos que admite OpenOCD en la pagina 76 del manual de usuario.
Incluso existen comandos que realizan la misma operacion. Ejemplo
1
|
|
es lo mismo que
1
|
|
Y como este ejemplo hay otros.