1. make V=1 명령으로 컴파일 함.(컴파일을 시도하지 않을경우 먼저 make clean을 해서 컴파일결과를 지움)
2. 컴파일 과정 중 원하는 소스를 컴파일하는 부분인 "gcc ....." 라고 나오는 부분을 몽땅 복사함.
3. 커널소스 디렉토리로 디렉토리를 바꿈(2.6에서는 커널소스 디렉토리에서 컴파일이 진행되는 것 같습니다.)
4. 복사한 gcc명령어에 -S 옵션을 추가하고 -o 옵션부분(출력파일이름)을 적당히 *.asm으로 바꾸어주고 복사한 명령어를 실행시킴.
5. 출력물을 감상함.
make V=1 명령으로
make V=1 명령으로 컴파일하면 gcc 명령이랑 파라미터가 보이는데, 그걸 그대로 사용하면서 어셈코드 옵션을 추가해서 사용하면 됩니다.
컴파일 된 오브젝트도 objdump(?)등의 명령으로 디어셈 가능합니다.
----

제가 잘 못이해 하는걸까요?
질문을 잘못한건지 제가 이해를 잘못하는건지 모르겠습니다만..
디바이스 드라이버 컴파일 과정중 어셈블리어로 변환된 결과를 눈으로 확인하고 싶습니다..
초보라 이해가 잘안돼는군요 ㅠㅠ
-----------------
V=1 옵션을 주고 컴파일을 실행하면 말씀하신대로 gcc와 여러 파라미터들이 무수히 많이 출력이 됩니다..
여기서 -S 옵션을 추가해 사용하시라는 말같은데..
make 출력 결과라서 이걸 어떻게 gcc로 따로 빼서 써야할지 궁금합니다
1. make V=1 명령으로
1. make V=1 명령으로 컴파일 함.(컴파일을 시도하지 않을경우 먼저 make clean을 해서 컴파일결과를 지움)
2. 컴파일 과정 중 원하는 소스를 컴파일하는 부분인 "gcc ....." 라고 나오는 부분을 몽땅 복사함.
3. 커널소스 디렉토리로 디렉토리를 바꿈(2.6에서는 커널소스 디렉토리에서 컴파일이 진행되는 것 같습니다.)
4. 복사한 gcc명령어에 -S 옵션을 추가하고 -o 옵션부분(출력파일이름)을 적당히 *.asm으로 바꾸어주고 복사한 명령어를 실행시킴.
5. 출력물을 감상함.
이상 확인되지 않은 방법입니다.
----

감사합니다
자세한 답변 정말 감사 합니다..
이제 감상할 시간이군요..
댓글 달기