Проходя по коду C в gdb с помощью Eclipse, я заметил, что для переменной char* sval
gdb печатает (во вкладке Expressions):
- Выражение: sval
- Тип: символ *
- Значение: 0x7fffd9d79840 "BIDPRICE"
Однако я знаю, что значение должно быть чем-то другим (скажем, «BIDZSPD»), потому что оно было назначено несколькими строками выше. Действительно, значение sval[3]
равно «Z», как и ожидалось.
Затем я заметил следующее в представлении выражений, так же как при наведении курсора на переменную:
Name : sval
Details:0x7fffd9d79840 "BIDZSPD"
Default:0x7fffd9d79840 "BIDPRICE"
Decimal:140736848173120
Hex:0x7fffd9d79840
Binary:11111111111111111011001110101111001100001000000
Octal:03777773165714100
Похоже на разные представления указателя на символ, но почему Details отличается от Default? Должен ли я интерпретировать «По умолчанию» как предыдущее значение? Почему По умолчанию отображается как значение выражения, а не текущее значение?