vscode disassembly에서 어셈블리어 표기법 선택하기

jw3215·2022년 10월 27일
0

개요

vscode에서 c/c++ 확장을 설치하면, disassembly view를 통해 어셈블리 코드를 확인할 수 있다. (디버깅 세션에 진입했을 때, 우클릭 메뉴에서 디스어셈블리 보기 열기 선택)
MS 공식 문서가 주로 Intel 표기법을 사용하기 때문인지는 모르지만, default값은 Intel 표기법이다.
지금 공부하고 있는 CS:APP에서 나오는 예제는 전부 AT&T 표기법을 따르고 있기때문에, AT&T 표기법으로 설정할 수 있으면 도움이 될 것 같아서 방법을 찾아보았다.

시행착오

정보가 많지 않아서 설정하는데 꽤 시간이 걸렸다. 일단은 디버그 콘솔에 -exec -gdb-set disassembly-flavor att를 입력하고 실행하면, 적용이 되고 AT&T 표기법으로 볼 수 있다.
다만, 이 명령은 최초로 disassembly view를 열기 전에 실행되어야 한다. 그렇게 하지 않고, Intel 표기법이 적용된 상태에서 disassembly view를 열면, 이후에 명령을 실행하더라도 표기법이 바뀌지 않는다. (vscode를 reload 해야함)

해결방안

vscode의 디버깅 세션을 설정하는 파일인 launch.json 파일을 다음과 같이 수정하여, 매 디버깅 세션마다 AT&T 표기법이 적용되게 설정 할 수 있었다.

// launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "preLaunchTask": "C/C++: gcc 활성 파일 빌드", // 디버깅 세션 들어가기 전에, 빌드 수행함.
      "name": "(gdb) 시작",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/${fileBasenameNoExtension}", // 디버깅할 오브젝트 파일
      "args": [],
      "stopAtEntry": false,
      "cwd": "${fileDirname}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
          {
              "description": "gdb에 자동 서식 지정 사용",
              "text": "-enable-pretty-printing",
              "ignoreFailures": true
          },
          {
              "description":  "디스어셈블리 버전을 AT&T(으)로 설정",
              "text": "-gdb-set disassembly-flavor att", // at&t 표기법으로 설정
              "ignoreFailures": true
          }
      ]
    }
  ]
}
  • 소스 코드가 한 개인 파일에서만 테스트 했음. (두 개 이상은 아직 테스트 해보지 않았음.)

참고

2개의 댓글

comment-user-thumbnail
2022년 10월 27일

vscode에서 c/c++ 확장을 설치되어있는데 마우스 오른쪽 클릭 시 Doxygen 주석 생성까지만 뜹니다. 혹시 다른거 설정해야할게 있을까요 ?

1개의 답글