Eclipse GDB выражение: что показано в «по умолчанию»? - PullRequest
4 голосов
/ 27 сентября 2011

Проходя по коду 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? Должен ли я интерпретировать «По умолчанию» как предыдущее значение? Почему По умолчанию отображается как значение выражения, а не текущее значение?

1 Ответ

0 голосов
/ 10 ноября 2011

Полная сборка исправлена. Это одна из вещей, которую нужно иметь в виду при работе с C ++: если вещи выглядят очень странно (например, gdb сообщает о разных значениях по одному и тому же адресу), вам нужно прикусить пулю и выполнить полную сборку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...