How to interpret @entry function argument values?
"Ananthakrishna Sowda (asowda)" <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
When I see @entry values , for example ‘pos’ and ‘color’ in frame 2 below : (gdb) bt #0 update_liberties (s=0) at engine/board.c:2871 #1 0x000000000040f2c4 in do_remove_string (s=s@entry=1) at engine/board.c:2989 #2 0x00000000004108ba in do_play_move (pos=pos@entry=64, color=color@entry=2) at engine/board.c:3416 …. Does it mean: a. The argument variable is <optimized out> and their values at function entry are shown. ( pos =<optimized out> at 0x4108ba , pos@entry=64) b. Value at current PC and at entry is same. ( pos=64 at 0x4108ba , pos@entry=64) I ask because, I see these values are available in some register in frame 2. So, they are no optimized out. So, why GDB is printing @entry values? (gdb) frame 2 #2 0x00000000004108ba in do_play_move (pos=pos@entry=64, color=color@entry=2) at engine/board.c:3416 3416 captured_stones += do_remove_string(string_number[west]); (gdb) p pos $9 = 64 (gdb) p color $10 = 2 (gdb) p &pos Address requested for identifier "pos" which is in register $rbx (gdb) p &color Address requested for identifier "color" which is in register $r12 If it matters, the code is compiled with gcc 4.7 and debugged with gdb 7.8. Thanks Ananth