«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как распечатать векторные элементы на C++ с помощью GDB?

Как распечатать векторные элементы на C++ с помощью GDB?

Опубликовано 7 ноября 2024 г.
Просматривать:612

How to Print Vector Elements in C   Using GDB?

Печать векторных элементов на C через GDB

При отладке кода C в GDB изучение содержимого std::vector может оказаться сложной задачей . Например, рассмотрим std::vector с именем myVector. Как эффективно распечатать его элементы?

В GCC 4.1.2 решение включает доступ к внутреннему указателю вектора, myVector._M_impl._M_start, который указывает на массив, содержащий элементы вектора.

Чтобы напечатать весь вектор, используйте:

print *(myVector._M_impl._M_start)@myVector.size()

Чтобы напечатать только первые N элементов, измените его на:

print *(myVector._M_impl._M_start)@N

Рассуждение

Этот подход использует команду GDB для печати N элементов массива, начиная с данный указатель. В данном случае указателем является myVector._M_impl._M_start, и мы указываем количество элементов для печати с помощью myVector.size() или желаемого счетчика N.

Хотя этот подход применим к GCC 4.1.2 , оно может отличаться в зависимости от версии вашего компилятора. Поэтому для других версий рекомендуется обратиться к соответствующей документации.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3