Шаблон std::vector
гарантирует, что данные хранятся непрерывно . Если вы берете адрес переднего элемента (скажем, &v[0]
, например), вы можете получить доступ к любому другому элементу в векторе через массив в стиле C. Это не требует наличия исходного кода STL, доступного для вашего отладчика.
После того, как возиться с некоторыми, кажется, что v.front()
и v.begin()
, вероятно, встроены, и GDB не находит их. Я продолжу поиск, но лично я просто добавлю строку int* i = &v[0]
в исходный файл, а затем использую команды GDB для i
при отладке. Обратите внимание, что компилятор может удалить этот мертвый код. Вам может потребоваться вывести значение i
, чтобы избежать этого, или просто не начинать оптимизацию.