GDB 디버거의 경우
(gdb) p &buffer
이 명령은 버퍼(스택)의 시작 위치 내용을 인쇄하는 데 사용됩니까, 아니면 주소를 인쇄하는 데 사용됩니까?
내용이라면 주소를 어떻게 인쇄하나요?
답변1
유형에 따라 다릅니다 buffer
.
buffer
아마도 버퍼의 시작 부분에 대한 포인터일 가능성이 높습니다 . C 스타일 선언은 struct stackElement *buffer;
다음과 같을 수 있습니다(별표 참고!). 이 경우:
p &buffer
포인터 자체가 저장된 주소(즉, "버퍼 주소의 주소")를 인쇄합니다.p buffer
buffer
버퍼의 주소인 포인터 변수의 값이 인쇄되어야 합니다 .p *buffer
버퍼의 내용이 인쇄되어야 합니다.
포인터가 아닌 구조체 유형인 경우 buffer
(예제 C 선언에는 struct stackElement buffer;
별표가 없을 수 있음) 다음을 수행합니다.
p &buffer
버퍼의 주소인 구조체의 주소를 인쇄합니다.p buffer
이 구조의 내용을 인쇄합니다(= 스택인 경우 첫 번째 스택 요소일 수 있음)p *buffer
실수입니다.