2010-04-13 4 views
3

저는 소스 코드 (작은 명령형 프로그래밍 언어로 작성된)를 Intel AT & T 32 비트 어셈블러로 변환하는 컴파일러를 작성하고 있습니다.Intel AT & T 어셈블러에 대한 단계별 실행?

생성 된 코드에서 불쾌한 오프셋 실수 등으로 인해 많은 시간을 디버깅하는 경향이 있습니다. 생성 된 어셈블러 코드를 단계별로 "걷는"도구를 아는 사람이 누구인지 알고 싶습니다. 단계별로 스택에 무엇이 있는지 시각화하십시오.

저는 개발 플랫폼으로 Ubuntu Linux를 사용하고 있으며, 터미널에 익숙합니다. GUI 프로그램도 좋을 것입니다. 그것이 존재합니까? 또는 그렇지 않은 좋은 이유가 있습니까? (아마도 문제가 그렇게 간단하지 않을 수 있습니다 ..)

어셈블리 코드에서 디버깅 작업에 접근 할 수있는 좋은 아이디어가 있으면 언제든지 알려주십시오.

답변

0

컴파일 프로세스의 최종 결과는 사용자가 실제로 실행할 수있는 것이므로 디버거에서 검사합니까? 그렇다면 Data Display Debugger (ddd)이 유용 할 수 있습니다.

+0

.. 그것은 "[currentdir] /sysdeps/i386/elf/start.S : No such file or directory"오류를줍니다. 아마도 gcc의 "-g"옵션과 비슷한 것을 구현해야합니다. 컴파일러 .. : -/.. –

+0

몇 가지 빠른 인터넷 검색은 그 라인을 따라 뭔가를 제안합니다. 내 추측 (순수 추측)은 ddd 밑에있는 gdb가 초기 중단 점을 삽입하기에 적합한 곳을 찾으려고한다는 것입니다. 결과 어셈블러를 "as"로 컴파일하는 경우에는 understands -g도 사용합니다. – torak

1

Linux에서 EDB (Evan 's Debugger)를 좋아합니다. 사용하기 쉽고 사용하기 쉬운 QT4 기반 GUI가 있습니다. 개발자의 목표는 OllyDbg와 유사하게 만드는 것입니다. 그리고 적극적으로 유지되고있어 :

EDB on FreshMeat

나는 그것뿐만 아니라 우분투에서 시냅스를 통해 설치의 확신 해요. 즐겨!

+0

EDB가 실제로 Synaptic을 통해 사용할 수 없다는 것을 알았습니다. FreshMeat에서 제공되는 소스 패키지에서 컴파일해야합니다. – Eric

0

Olly 및 EDB와 같은 디버거 사용 경험이 매우 희박하므로 문제를 해결할 수 없었습니다. 나는

  • 산란이 생동감 분석 다른 반복에 유용한 메타 데이터 등으로 컴파일러 출력 HTML 형식의 코드를시키는
  • 나쁜 레지스터 값들 아래로 못 박는, 소스 코드의 Debug function 주위 호출

    을 종료
관련 문제