2012-03-12 4 views
1

디버깅 목적으로 일부 구조체를 인쇄해야합니다. 코드베이스가 거대하기 때문에 정확한 멤버를 찾는 데 어려움이 있습니다. 전체 구조를 인쇄 할 수있는 방법이 있습니까? 또는 atleast 구조의 유형을 알기 위하여 나는 돌아가서 그것의 정의를 들여다 볼 수 있는가?유형을 모른 채 데이터 인쇄?

+0

gdb를 사용할 수 없습니까? – hari

+1

'p struct_var'는 dbx의 요소별로 전체 구조체 요소를 자동으로 출력합니다. C 프로그램 내에서 이것을 원하십니까? –

+0

제가 제안 할 수있는 주제 해결책 중 하나가 더 있습니다 - 다운로드 소어 통찰력 시험 버전 http://www.sourceinsight.com/eval.html. 전체 프로젝트를 추가하십시오. 걱정 마세요. SI는 거대한 프로젝트를 처리 할 수 ​​있습니다. 파일을 동기화하십시오. 비올라! 구조 정의로 이동합니다. –

답변

3

디버거를 사용하십시오. 대부분의 디버거는 중단 점에 도달 할 때마다 전체 구조의 내용을 볼 수있는 옵션을 제공합니다. * nix에서 가장 많이 사용되는 디버거는 gdb이고 Windows에서는 가장 널리 사용되는 IDE (디버거 포함)는 Visual Studio입니다. 두 사이트 모두 제가 무료로 다운로드 할 수있는 링크를 가지고 있습니다.

gdb에서 break 명령으로 중단 점을 설정할 수 있으며, 중단 점에 도달하면 print 명령으로 구조체의 내용을 인쇄 할 수 있습니다. 보다 구체적으로, 당신은 포함 디버깅 데이터 (GCC의 -g 플래그)로 컴파일 할 수 있으며, 다음 단계로보고 또한 가치

$ gdb debugging_executable 
Some basic information about GDB gets printed here 
> break main.c:100 
> run 
> print struct_variable 

를 사용하여 명령을 계속합니다.

Visual Studio에서 소스 줄의 왼쪽 (편집기 왼쪽에 회색 막대가 있음)에서 두 번 클릭하여 중단 점을 설정할 수 있으며 변수 이름 위에 마우스를 올려 내용을 검사 할 수 있습니다 일단 중단 점에 도달하면

관련 문제