안녕하세요,
QEMU에 arm linux kernel을 올린다고 하였을 때
이 상황에서 QEMU 자체만 흐름을 따라가고자 gdb로
프로그램의 흐름을 보고 싶은데 어떻게 하면 되나요?
구글링 해본결과 QEMU위에 올라가는 linux kernel을 debuggin하는
방법밖에 나오질 않네요.
댓글 2
.
안녕하세요,
QEMU에 arm linux kernel을 올린다고 하였을 때
이 상황에서 QEMU 자체만 흐름을 따라가고자 gdb로
프로그램의 흐름을 보고 싶은데 어떻게 하면 되나요?
구글링 해본결과 QEMU위에 올라가는 linux kernel을 debuggin하는
방법밖에 나오질 않네요.
.
안녕하세요
오래전에 해봐서 기억이 가물거리긴 한데
간단하게 설명하자면,
qemu를 직접 빌드하신 후 qemu 실행을 gdb로 하시면 됩니다.
예를 들면,
$ gdb qemu
(gdb) r <arguments>
다만 qemu 빌드시 gcc 최적화 옵션이 포함되기 때문에 가끔 wrapper 함수등에서 흐름을 따라가기 어려울 때가 있습니다.
제 기억이 맞다면 linux kernel 빌드는 최적화 옵션을 제거하면 빌드 에러가 나는 걸로 아는데(최적화 옵션으로 나온 결과물을 가지고 후보정을 하는 코드들이 있어서 그랬던 것으로 기억합니다.)
qemu는 잘 빌드가 되더군요
복 많이 받으세요.