컨텍스트의 경우, 특별한 경우는 다음과 같습니다. segfault가 있고 코어를 분석하고 있습니다. 스택 트레이스는 exit라고 불리는 프로그램을 보여 주지만 그것을 완료하기 전에 어떤 벡터의 내부에서 추락합니다; 벡터의 주소를 얻을 수는 있지만 코드에 익숙하지 않아 어떤 변수에 해당하는지 알지 못합니다. 관련 코드를 검사하기 위해 어떤 변수가이 벡터를 가리키고 있는지 알고 싶습니다. 어떤 제안?gdb에서 주소를 가리키는 모든 변수를 찾으십시오.
1
A
답변
3
내가 벡터의 주소를 얻을 수 있습니다 작성합니다 벡터
사용할 수있는 변수의 주소가 있습니다. info symbol
명령은 다음과 같은 변수의 이름을 인쇄 :
(gdb) info symbol 0x4005BDC
은 GDB 문서에 Examining the Symbol Table를 참조하십시오.
0
충돌 직전에 중단 점을 만들어 std :: vector 내의 모든 변수를 인쇄 할 수 있습니다.
예를 들어print *(your_vector._M_impl._M_start)@your_vector.size()
: std::vector<int> vec(3);
와
당신은 내가 변수이 가리키는있는 것을 발견하고 싶습니다 ... print *(vec._M_impl._M_start)@3
관련 문제
- 1. GDB에서 전역 주소를 얻는 방법
- 2. 정규식을 사용하여 파일의 모든 메일 주소를 찾으십시오.
- 3. 마우스 포인터가 가리키는 것을 찾으십시오
- 4. 실제 IP 주소를 찾으십시오
- 5. preg_match로 주소를 찾으십시오.
- 6. 도메인이 가리키는 IP 주소를 변경하십시오.
- 7. C 주소를 가리키는 C 스택?
- 8. 내 네트워크에서 IP 주소를 찾으십시오
- 9. GDB에서 segfault가 발생한 주소를 알려주려면 어떻게해야합니까?
- 10. GDB에서 malloc을 사용하여 힙에 누가 주소를 찾았습니까?
- 11. IP 주소를 추적하고 소유자를 찾으십시오
- 12. 포인터 변수를 가리키는 방법
- 13. 특정 포트 번호가 열려있는 네트워크상의 모든 장치의 IP 주소를 찾으십시오.
- 14. bcmod 다른 변수를 찾으십시오
- 15. IPv6 주소를 가리키는 SRV 레코드를 찾는 방법
- 16. 포인터가 가리키는 메모리 위치의 주소를 얻는 방법
- 17. ctypes 포인터가 가리키는 메모리 주소를 가져옵니다.
- 18. 다른 주소를 가리키는 vTables 및 함수 포인터
- 19. 동일한 IP 주소를 가리키는 두 도메인
- 20. 전역 정의 된 포인터가 사용 된 힙 할당을 가리키는 주소를 찾으십시오.
- 21. 안드로이드에서 wifi 핫스팟의 IP 주소를 찾으십시오.
- 22. 서버에 연결된 모든 IP를 찾으십시오.
- 23. GDB에서
- 24. 다른 변수를 가리키는 php 변수
- 25. 연산자를 가리키는 변수를 사용한 평가
- 26. gdb에서 재귀 sizeof?
- 27. 파이썬과 libpcap. 패킷의 소스 MAC 주소를 찾으십시오.
- 28. 파일에서 서브넷 마스크가있는 IP 주소를 찾으십시오.
- 29. gdb에서 실행되지만 gdb에서 실행되지 않습니다.
- 30. gdb에서 효과적입니다.
운영 체제가 적합한 경우 : valgrind를 시도하십시오. –
"변수가이 벡터를 가리키고 있습니다"라는 의미는 무엇입니까? 벡터 객체 주소를 저장하는 포인터 변수를 의미합니까? –
@AlexeyTeplyakov : 현재 값이 벡터 인 C++ 변수입니다. – ricab