Печать векторных элементов на C через GDB
При отладке кода C в GDB изучение содержимого std::vector может оказаться сложной задачей . Например, рассмотрим std::vector
В 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