This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

value of local variable stored in register


Hi All,

I am trying to find the value of local variable stored in register.
But I am getting wrong value from gdb.
Here what i am trying

#include<stdio.h>

int main()
{
int *a=0;
volatile register int b=0xabcd;
 register int c=20;
printf("%x\n",b*c);
*a=0;
return 0;
}


------------------------------
-----------------------
GDB info:

Core was generated by `./a.out'.
Program terminated with signal 11, Segmentation fault.
 #0  0x080483e1 in main () at 1.c:9
9       *a=0;
(gdb) info local
a = (int *) 0x0
b = 43981
c = 11305136
(gdb) info reg
eax            0x0      0
ecx            0x0      0
edx            0xac80b0 11305136
 ebx            0xac6ff4 11300852
esp            0xbfc65a00       0xbfc65a00
ebp            0xbfc65a28       0xbfc65a28
esi            0x973ca0 9911456
edi            0x0      0
eip            0x80483e1        0x80483e1 <main+61>
 eflags         0x210282 [ SF IF RF ID ]
cs             0x73     115
ss             0x7b     123
ds             0x7b     123
es             0x7b     123
fs             0x0      0
gs             0x33     51
 (gdb)


The value of local variable is shown as c = 11305136, but actual value is 20.

How to get the correct value of variables which are stored in register.

Regards
Neeraj


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]