Buenas gente del foro, desde hace poco estoy aprendiendo a utilizar GDB y quisiera saber como se podría usar el comando examinar memoria sabiendo que fue previamente almacenado en una variable el tamaño del buffer...
Programa de ejemplo de para practicar:
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <cstdint>
int main(int argc, char**argv)
{
char *pBuffer=0;
int index=0,iUnknownSize=0;
srand(time(NULL));
do
{
iUnknownSize=rand()%20+1;
}
while(iUnknownSize<=0);
pBuffer=(char*)malloc(iUnknownSize);
if(pBuffer)
{
for(;index<iUnknownSize;index++)
pBuffer[index]=(char)(rand()%254+1)&0xFF;
printf("Comienza el procesado...\n");
for(index=0;index<iUnknownSize;index++)
printf("%X\n",(char)(pBuffer[index]&(uint64_t)0xFF));
printf("Finaliza el procesado...\n");
free(pBuffer);
}
printf("\n");
return 0;
}
Al poner un breakpoint al primer printf que es lo que me interesaría puedo consultar la variable iUnknownSize y luego utilizarla con el comando x (examinar memoria)
(https://i.imgur.com/bVhNg2Z.png)
Pero la idea sería final sería poner al breakpoint un comando automático que dumpee como lo siguiente:
x/(obtener valor de iUnknownSize)xb pBuffer
¿Mi pregunta sería hay alguna manera de especificarle depurador dicho valor al examinar?
B#