2012-01-10 4 views
10

gdb에 배열을 인쇄 할 수 있다는 것을 알고 있습니다.g 배열을 통해 C 배열 크기

(gdb) p *[email protected] 

길이를 알려주는 gdb 명령이 있습니까? 같은 입력에 편리한 바로 가기 : 배열이 컴파일시에 정의 된 경우

(gdb) p sizeof(array)/sizeof(int) 

을 그리고 실제로, 예를 들어 배열로 정의되어 있다면 당신은 그것을

답변

12

ptype을 사용하여 기호 유형을 알 수 있습니다. int array[5]를 들어

,

(gdb) ptype array 
type = int [5] 
+0

좋은 명령 ... 감사합니다 –

+0

그냥 내가 무엇을 찾고 있었는지 .. – bph

+0

너무 fortran 근무 – wander95

11

을 확인하려면 더 나은 및 더 일반적인 방법이지만

int array[5]; 

그리고 그래, 당신은, 당신이 쓴 무엇을 사용할 수 있습니다

(gdb) p sizeof(array)/sizeof(*array) 

이 배열의 유형을지지 않습니다.

변수가 포인터로 정의 된 경우, 아니오입니다.

+0

좋은 점, 즉보다 일반적인입니다 - 내가 그 일부 GDB 바로 가기가있을 수 있습니다 생각? 아니면 어떻게 든 당신 자신을 정의 할 수 있을까요? – bph

+2

@Hiett 배열을 인쇄하면 모든 값이 인쇄됩니다. 그 너머, 나는 모른다. – Kevin