GDB에서 벡터 요소에 액세스
C 코드를 디버깅할 때 데이터 구조의 내용을 검사하는 것이 중요합니다. std::Vector의 경우 이는 GDB에서 특히 어려울 수 있습니다.
벡터 요소 주소 지정
GCC 4.1.2에서 std::의 내부 배열은 벡터는 포인터를 통해 액세스할 수 있습니다:
myVector._M_impl._M_start
여기서 myVector는 벡터의 이름입니다.
벡터 요소 인쇄
std::Vector
print *(myVector._M_impl._M_start)@myVector.size()
이 명령은 벡터의 모든 요소를 인쇄합니다. 첫 번째 N 요소만 인쇄하려면 다음을 사용하세요.
print *(myVector._M_impl._M_start)@N
설명
별표(*)는 시작을 가리키는 _M_start 포인터를 역참조하는 데 사용됩니다. 내부 배열의 @ 기호는 인쇄할 요소 수를 지정합니다.
이 방법은 버전에 따라 다르며 컴파일러 버전에 따라 다를 수 있습니다.
위 내용은 GDB에서 std::벡터의 요소에 어떻게 액세스하고 인쇄할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!