VsCode 디버그 RUST

2659 단어 rustvscodeprogramming
이 가이드는 RUST와 함께 VSCode LLDB 디버거를 사용하는 방법을 설명하기 위한 것입니다.

커닝햄의 법칙에 따르면 "인터넷에서 올바른 답을 얻는 가장 좋은 방법은 질문을 하는 것이 아니라 잘못된 답을 게시하는 것입니다."이 개념은 위키 소프트웨어의 발명가인 Ward Cunningham의 이름을 따서 명명되었습니다.

Cunningham 정신을 염두에 두고 이 작업을 수행하는 더 좋은 방법이나 시도해야 할 다른 멋진 방법을 알고 있다면 의견에 알려주십시오.

내가 사용한 리소스:


  • https://github.com/vadimcn/vscode-lldb/blob/master/MANUAL.md#vscode-commands
  • https://vscode-docs.readthedocs.io/en/stable/editor/debugging/

  • CodeLLDB는 기본적으로 가장 일반적인 Rust 데이터 유형의 시각화를 지원합니다.

    기본 제공 유형: 튜플, 열거형, 배열, 배열 및 문자열 슬라이스.
    표준 라이브러리 유형: Vec, String, CString, OSString, Path, Cell, Rc, Arc 등.

    아래는 Rust 1.60에서 작동하는 vscode용으로 완전히 작동하는 launch.json, 인라인 주석입니다.

    {
        "version": "0.2.0",
        "configurations": [
            {
                // 😓 LLDB Help: https://github.com/vadimcn/vscode-lldb/discussions
                "type": "lldb",
                "request": "launch",
                "name": "Debug",
    
                // 🤓 use this to debug RUST binaries:
                "program": "${workspaceRoot}/target/debug/${workspaceRootFolderName}",
    
                // 🤓 use cargo for libraries
                /* 
                "cargo": {
                    "args": ["test", "--no-run", "--lib"], // Cargo command line to build the debug target
                    // "args": ["build", "--bin=foo"] is another possibility
                    "filter": { // Filter applied to compilation artifacts (optional)
                        "name": "mylib",
                        "kind": "lib"
                    }            
                */
                "args": [],
                "cwd": "${workspaceFolder}",
                "sourceLanguages": ["rust"], // required to add support for Vec, String, enum .. 
                "terminal":"integrated",        // can also be 'console', 'external'
    
                // 🤓 https://github.com/vadimcn/vscode-lldb/blob/master/MANUAL.md#stdio
                "stdio": null                // connect all streams to default terminal, can also use file(s)
    
                // "stopOnEntry":true,          // should open an lldb hex/asm dump on start
            ]
    }
    

    좋은 웹페이지 즐겨찾기