У меня есть следующий код, который скомпилирован с опцией -g.
$ cat main.c
/* vim: set noexpandtab tabstop=2: */
#include <stdio.h>
int U_var;
int I_var=42;
const int C_var=2;
static void inc_U_var() {
U_var+=C_var;
}
void inc_I_var() {
I_var+=C_var;
}
int main() {
inc_U_var();
inc_I_var();
return 0;
}
В GDB константа C_var показана как $2
. Есть ли способ сохранить имя переменной const в коде разборки? Спасибо.
(gdb) disassemble inc_I_var
Dump of assembler code for function inc_I_var:
0x0000000100000ec0 <+0>: push %rbp
0x0000000100000ec1 <+1>: mov %rsp,%rbp
0x0000000100000ec4 <+4>: mov 0x156(%rip),%eax # 0x100001020 <I_var>
0x0000000100000eca <+10>: add $0x2,%eax
0x0000000100000ecd <+13>: mov %eax,0x14d(%rip) # 0x100001020 <I_var>
0x0000000100000ed3 <+19>: pop %rbp
0x0000000100000ed4 <+20>: retq
End of assembler dump.
(gdb) list inc_I_var
7
8 static void inc_U_var() {
9 U_var+=C_var;
10 }
11
12 void inc_I_var() {
13 I_var+=C_var;
14 }
15
16 int main() {