2014-07-14 2 views
3

Code :: Blocks를 사용하여 프로그램을 디버깅하고 있는데 다음과 같은 문제가 있습니다. Vector의 멤버가 Watches에 표시되지 않습니다. 왜 이런 일이 발생합니까? 어떻게 처리할까요? enter image description hereCode :: Blocks debugging issue

+0

실제 문제는 무엇입니까? 아마도 std :: vector의 멤버를 볼 수 있다는 것은 끝을 의미합니다. 부수적으로 std :: vector에는 공용 데이터 만있는 공용 함수가 없습니다. – enhzflep

+0

@enhzflep, Visual Studio 디버깅 모드에서 가능하기 때문에 벡터의 멤버를 추적하고 싶습니다. – omtcyfz

+1

No는 C :: B와 GDB로 할 수 있습니다. 그냥'printf' /'cout'을 사용하십시오. 귀하의 코드에서, 그것은 당신이 가능한 벡터의 범위를 넘어 인덱스하려고하는 것 같습니다. 잊지 말고 vector.size()는 요소의 수를 반환하고, 마지막 요소는 vector [vector.size() - 1]로 액세스합니다. 당신이'[i]'와'[i + 1]'둘 모두에 접근하고 있기 때문에, 만약 당신이 내가 vector.size() -2에 도달했다면 보석금을 내야한다. ('count '가 무엇인지 모른다.) - OffTopic : GDB가 윈도우에서 C :: B의 기능을한다고 경고 해 주셔서 감사합니다. 15 년 넘게 GDB를 사용하지 않았습니다. :) – enhzflep

답변

1

벡터 내용을 올바르게 표시하려면 사용하는 gdb 버전에 python 예쁜 프린터를 설치해야합니다 (link 참조).