이것은 내가 뭘하려하지만, 작동하지 않는 것 같다 : 그것은 잘 작동처럼gdb에서 printf의 결과를 어떻게 볼 수 있습니까?
(gdb) call printf("%d",6)
$8 = 1
이것은 내가 뭘하려하지만, 작동하지 않는 것 같다 : 그것은 잘 작동처럼gdb에서 printf의 결과를 어떻게 볼 수 있습니까?
(gdb) call printf("%d",6)
$8 = 1
표준 출력 (FILE *)에 출력 버퍼가 있기 때문에 결과를 볼 수 없습니다. 버퍼가 꽉 차거나 '\ n'이 나올 때까지 화면에 아무 것도 출력하지 않습니다.
그래서 이런의 printf를 호출 BTW
(gdb) call (int)printf("%d\n", 6)
6
$6 = 2
을의 printf 의 결과 값 인 "$ 6 = 2".
것 같습니다 - printf
가 성공적으로 표준 출력에 하나의 문자를 인쇄 한 것을 나타내는 1을 반환했습니다.
표준 출력은 gdb가 실행되는 동일한 터미널에 반드시 표시되는 것은 아닙니다. 디버깅중인 프로그램이 표준 출력을 가지고있는 곳이면 어디에서나 표시됩니다 (마치 프로그램 자체가 printf()
- gdb의 call
명령은 프로그램의 컨텍스트에서 함수를 호출합니다.
잘 알고 있습니다! .. –