2023-11-22

[vscode] tasks.json launch.json


### tasks.json    {    "version": "2.0.0",    "tasks": [      {        "label": "checkCrossCompile",        "command": "bash",        "args": [          "-c",          "if [ -n \"$CROSS_COMPILE\" ]; then echo 'true'; else echo 'false'; fi"        ],        "type": "shell"      },      {        "label": "setCrossCompileEnv",        "dependsOn": ["checkCrossCompile"],        "command": "echo 'IS_CROSS_COMPILE=${checkCrossCompile.result}' > .vscode/env.txt",        "type": "shell"      }    ]  }    ### launch.json    {    "version": "0.2.0",    "configurations": [      {        "name": "C++ Launch (x64)",        "type": "cppdbg",        "request": "launch",        "program": "${workspaceFolder}/build_x64/executable",        "envFile": "${workspaceFolder}/.vscode/env.txt"      },      {        "name": "C++ Launch (ARM)",        "type": "cppdbg",        "request": "launch",        "program": "${workspaceFolder}/build_arm/executable",        "envFile": "${workspaceFolder}/.vscode/env.txt"      }    ]  }  

tasks.json 파일은 checkCrossCompile 작업과 setCrossCompileEnv 작업을 정의합니다. checkCrossCompile 작업은 CROSS_COMPILE 환경 변수가 설정되어 있는지 확인하고, setCrossCompileEnv 작업은 IS_CROSS_COMPILE 변수의 값을 checkCrossCompile 작업의 결과에 따라 설정합니다.

launch.json 파일은 C++ Launch (x64)C++ Launch (ARM)이라는 두 가지 디버깅 구성을 정의합니다. 두 구성 모두 envFile 속성을 사용하여 .vscode/env.txt 파일에서 환경 변수를 가져옵니다.

이 구성을 사용하면 디버깅 세션을 시작할 때 다음과 같은 일이 발생합니다.

  1. checkCrossCompile 작업이 실행되어 CROSS_COMPILE 환경 변수가 설정되어 있는지 확인합니다.
  2. CROSS_COMPILE 환경 변수가 설정되어 있으면 IS_CROSS_COMPILE 변수가 true로 설정됩니다.
  3. CROSS_COMPILE 환경 변수가 설정되어 있지 않으면 IS_CROSS_COMPILE 변수가 false로 설정됩니다.
  4. .vscode/env.txt 파일에 IS_CROSS_COMPILE 변수의 값이 기록됩니다.
  5. C++ Launch (x64) 또는 C++ Launch (ARM) 구성을 사용하여 디버깅 세션을 시작합니다.

디버깅 세션을 시작하면 envFile 속성에 지정된 파일에서 환경 변수를 읽습니다. 이 경우 .vscode/env.txt 파일에서 IS_CROSS_COMPILE 변수의 값을 읽습니다.

따라서 IS_CROSS_COMPILE 환경 변수의 값은 디버깅 세션에 따라 true 또는 false가 됩니다.

댓글 없음:

댓글 쓰기

암호화 + base64 하고 쉘스크립트.

 #!/bin/bash # IV와 UserKey를 설정합니다 (아스키 문자열을 그대로 사용). IV="0123456789abcdef"  UserKey="0123456789abcdef" # IV와 UserKey를 16...