vadimcn / codelldb

A native debugger extension for VSCode based on LLDB
https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb
MIT License
2.42k stars 237 forks source link

remote debug on android failed : "No such file or directory" #1077

Open MeeCreeps opened 4 months ago

MeeCreeps commented 4 months ago

OS: windows 11 VSCode version: 1.85.2 CodeLLDB version: 1.10.0 Compiler: clang Debuggee: android arm64-v8a

I want to debug a program on a Android device, but debug failed with the error "No such file or directory: ${env}", it seems like that codelldb didn't push target file to the device.

here is my launch.json: { "configurations": [ { "type": "lldb", "request": "launch", "name": "Remote CMake Targets", "program": "${command:cmake.launchTargetPath}", // Run this on another terminal: adb shell "cd /data/local/tmp; ./lldb-server p --server --listen '*:9999'" "initCommands": [ "platform select remote-android", "platform connect connect://localhost:9999", "settings set target.inherit-env false", "platform shell touch ${command:cmake.buildTargetName}" ], "args": [ // args to the program ], "cwd": "/data/local/tmp/test", "env": { "LD_LIBRARY_PATH": "/data/local/tmp/test" } }, { "name": "CMake Targets", "type": "cppdbg", "request": "launch", // Resolved by CMake Tools: "program": "${command:cmake.launchTargetPath}", "args": [ // args to the program ], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [ { "name": "PATH", "value": "${env:PATH}:${command:cmake.getLaunchTargetDirectory}" }, { "name": "OTHER_VALUE", "value": "Something something" } ], "externalConsole": false, "MIMode": "gdb" } ] }

Verbose log
  
Initial debug configuration: {
  type: 'lldb',
  request: 'launch',
  name: 'Remote CMake Targets',
  program: '${command:cmake.launchTargetPath}',
  initCommands: [
    'platform select remote-android',
    'platform connect connect://localhost:9999',
    'settings set target.inherit-env false'
  ],
  args: [],
  cwd: '/data/local/tmp/test',
  env: { LD_LIBRARY_PATH: '/data/local/tmp/test' },
  __configurationTarget: 6
}
Resolved debug configuration: {
  type: 'lldb',
  request: 'launch',
  name: 'Remote CMake Targets',
  program: '${command:cmake.launchTargetPath}',
  initCommands: [
    'platform select remote-android',
    'platform connect connect://localhost:9999',
    'settings set target.inherit-env false'
  ],
  args: [],
  cwd: '/data/local/tmp/test',
  env: { LD_LIBRARY_PATH: '/data/local/tmp/test' },
  __configurationTarget: 6,
  relativePathBase: 'h:\\git\\HPMC-Tutorial\\VSCode-CPP',
  _adapterSettings: {
    displayFormat: 'auto',
    showDisassembly: 'auto',
    dereferencePointers: true,
    suppressMissingSourceFiles: true,
    evaluationTimeout: 5,
    consoleMode: 'evaluate',
    sourceLanguages: null,
    terminalPromptClear: null,
    evaluateForHovers: true,
    commandCompletions: true,
    reproducer: false
  }
}
liblldb: c:\Users\10419\.vscode\extensions\vadimcn.vscode-lldb-1.10.1-dev.2312052340\lldb\bin\liblldb.dll
environment: {}
settings: { evaluateForHovers: true, commandCompletions: true }
[DEBUG codelldb] Connecting to 127.0.0.1:59363
[DEBUG codelldb] New debug session
[DEBUG codelldb::dap_codec] --> {"command":"initialize","arguments":{"clientID":"vscode","clientName":"Visual Studio Code","adapterID":"lldb","pathFormat":"path","linesStartAt1":true,"columnsStartAt1":true,"supportsVariableType":true,"supportsVariablePaging":true,"supportsRunInTerminalRequest":true,"locale":"en","supportsProgressReporting":true,"supportsInvalidatedEvent":true,"supportsMemoryReferences":true,"supportsArgsCanBeInterpretedByShell":true,"supportsMemoryEvent":true,"supportsStartDebuggingRequest":true},"type":"request","seq":1}
[DEBUG codelldb::dap_codec] <-- {"seq":1,"type":"response","request_seq":1,"success":true,"command":"initialize","body":{"exceptionBreakpointFilters":[{"default":true,"filter":"cpp_throw","label":"C++: on throw","supportsCondition":true},{"default":false,"filter":"cpp_catch","label":"C++: on catch","supportsCondition":true}],"supportTerminateDebuggee":true,"supportsCancelRequest":true,"supportsCompletionsRequest":true,"supportsConditionalBreakpoints":true,"supportsConfigurationDoneRequest":true,"supportsDataBreakpoints":true,"supportsDelayedStackTraceLoading":true,"supportsDisassembleRequest":true,"supportsEvaluateForHovers":true,"supportsExceptionFilterOptions":true,"supportsExceptionInfoRequest":true,"supportsFunctionBreakpoints":true,"supportsGotoTargetsRequest":true,"supportsHitConditionalBreakpoints":true,"supportsInstructionBreakpoints":true,"supportsLogPoints":true,"supportsReadMemoryRequest":true,"supportsSetVariable":true,"supportsSteppingGranularity":true,"supportsWriteMemoryRequest":true}}
[DEBUG codelldb::dap_codec] --> {"command":"launch","arguments":{"type":"lldb","request":"launch","name":"Remote CMake Targets","program":"H:\\git\\HPMC-Tutorial\\VSCode-CPP\\build\\dev-android-arm64-v8a\\gemv-neon","initCommands":["platform select remote-android","platform connect connect://localhost:9999","settings set target.inherit-env false"],"args":[],"cwd":"/data/local/tmp/test","env":{"LD_LIBRARY_PATH":"/data/local/tmp/test"},"__configurationTarget":6,"relativePathBase":"h:\\git\\HPMC-Tutorial\\VSCode-CPP","_adapterSettings":{"displayFormat":"auto","showDisassembly":"auto","dereferencePointers":true,"suppressMissingSourceFiles":true,"evaluationTimeout":5,"consoleMode":"evaluate","sourceLanguages":null,"terminalPromptClear":null,"evaluateForHovers":true,"commandCompletions":true,"reproducer":false},"__sessionId":"2f4a8773-cc94-4323-81b8-7378627d7289"},"type":"request","seq":2}
[DEBUG codelldb::dap_codec] <-- {"seq":2,"type":"event","event":"output","body":{"category":"console","output":"Console is in 'evaluation' mode, prefix commands with '/cmd ' or '`'.\n"}}
[DEBUG codelldb::dap_codec] <-- {"seq":3,"type":"event","event":"output","body":{"category":"console","output":"Executing script: initCommands\n"}}
[DEBUG codelldb::debug_session] platform select remote-android -> SuccessFinishResult, Error:  Success
    Output Message:
      Platform: remote-android
     Connected: no

[DEBUG codelldb::dap_codec] <-- {"seq":4,"type":"event","event":"output","body":{"category":"console","output":"  Platform: remote-android\n Connected: no\n\n"}}
[DEBUG codelldb::debug_session] platform connect connect://localhost:9999 -> SuccessFinishResult, Error:  Success
    Output Message:
      Platform: remote-android
        Triple: arm-unknown-linux-android
    OS Version: 33 (4.19.157-perf-g35fcd5da188a)
      Hostname: localhost
     Connected: yes
    WorkingDir: /data/local/tmp/lldb
        Kernel: #1 SMP PREEMPT Mon Jun 5 06:43:39 UTC 2023

[DEBUG codelldb::dap_codec] <-- {"seq":5,"type":"event","event":"output","body":{"category":"console","output":"  Platform: remote-android\n    Triple: arm-unknown-linux-android\nOS Version: 33 (4.19.157-perf-g35fcd5da188a)\n  Hostname: localhost\n Connected: yes\nWorkingDir: /data/local/tmp/lldb\n    Kernel: #1 SMP PREEMPT Mon Jun 5 06:43:39 UTC 2023\n\n"}}
[DEBUG codelldb::debug_session] settings set target.inherit-env false -> SuccessFinishResult, Error:  Success
INFO(Python) 15:52:49 formatters: Initializing
INFO(Python) 15:52:49 formatters.rust: Initializing
[DEBUG codelldb::dap_codec] <-- {"seq":6,"type":"event","event":"initialized"}
[DEBUG codelldb::debug_session] Debug event: 000001F797C2D800 Event: broadcaster = 000001F7976732D8 (lldb.target), type = 0x00000002 (modules-loaded), data = {gemv-neon}
[DEBUG codelldb::dap_codec] <-- {"seq":7,"type":"event","event":"module","body":{"module":{"addressRange":"FFFFFFFFFFFFFFFF","id":"FFFFFFFFFFFFFFFF","name":"gemv-neon","path":"H:\\git\\HPMC-Tutorial\\VSCode-CPP\\build\\dev-android-arm64-v8a\\gemv-neon","symbolFilePath":"H:\\git\\HPMC-Tutorial\\VSCode-CPP\\build\\dev-android-arm64-v8a\\gemv-neon","symbolStatus":"Symbols loaded."},"reason":"new"}}
[DEBUG codelldb::dap_codec] --> {"command":"setBreakpoints","arguments":{"source":{"name":"gemv-neon.cpp","path":"h:\\git\\HPMC-Tutorial\\VSCode-CPP\\src\\gemv-neon.cpp"},"lines":[127],"breakpoints":[{"line":127}],"sourceModified":false},"type":"request","seq":3}
[DEBUG codelldb::dap_codec] --> {"command":"setFunctionBreakpoints","arguments":{"breakpoints":[]},"type":"request","seq":4}
[DEBUG codelldb::dap_codec] --> {"command":"setDataBreakpoints","arguments":{"breakpoints":[]},"type":"request","seq":5}
[DEBUG codelldb::dap_codec] --> {"command":"setInstructionBreakpoints","arguments":{"breakpoints":[]},"type":"request","seq":6}
[DEBUG codelldb::dap_codec] --> {"command":"setExceptionBreakpoints","arguments":{"filters":[],"filterOptions":[{"filterId":"cpp_throw"}]},"type":"request","seq":7}
[DEBUG codelldb::debug_session] Debug event: 000001F79748B980 Event: broadcaster = 000001F7976732D8 (lldb.target), type = 0x00000001 (breakpoint-changed), data = {bkpt: 1 type: breakpoint added}
[DEBUG codelldb::dap_codec] <-- {"seq":8,"type":"response","request_seq":3,"success":true,"command":"setBreakpoints","body":{"breakpoints":[{"id":1,"line":127,"message":"Resolved locations: 0","verified":true}]}}
[DEBUG codelldb::dap_codec] <-- {"seq":9,"type":"response","request_seq":4,"success":true,"command":"setFunctionBreakpoints","body":{"breakpoints":[]}}
[DEBUG codelldb::debug_session] Debug event: 000001F79748C300 Event: broadcaster = 000001F7976732D8 (lldb.target), type = 0x00000001 (breakpoint-changed), data = {bkpt: 2 type: breakpoint added}
[DEBUG codelldb::dap_codec] <-- {"seq":10,"type":"response","request_seq":5,"success":true,"command":"setDataBreakpoints","body":{"breakpoints":[]}}
[DEBUG codelldb::dap_codec] <-- {"seq":11,"type":"response","request_seq":6,"success":true,"command":"setInstructionBreakpoints","body":{"breakpoints":[]}}
[DEBUG codelldb::dap_codec] <-- {"seq":12,"type":"response","request_seq":7,"success":true,"command":"setExceptionBreakpoints"}
[DEBUG codelldb::dap_codec] --> {"command":"configurationDone","type":"request","seq":8}
[DEBUG codelldb::dap_codec] <-- {"seq":13,"type":"event","event":"output","body":{"category":"console","output":"Launching: H:\\git\\HPMC-Tutorial\\VSCode-CPP\\build\\dev-android-arm64-v8a\\gemv-neon\n"}}
[ERROR codelldb::debug_session] No such file or directory: \data\local\tmp\test

    Possible cause: the working directory "\data\local\tmp\test" is missing or inaccessible.
[DEBUG codelldb::dap_codec] <-- {"seq":14,"type":"response","request_seq":2,"success":false,"command":"","message":"No such file or directory: \\data\\local\\tmp\\test\n\nPossible cause: the working directory \"\\data\\local\\tmp\\test\" is missing or inaccessible.","show_user":true}
[DEBUG codelldb::dap_codec] <-- {"seq":15,"type":"response","request_seq":8,"success":true,"command":"configurationDone"}
[DEBUG codelldb::dap_codec] --> {"command":"disconnect","arguments":{"restart":false},"type":"request","seq":9}
[DEBUG codelldb::dap_codec] <-- {"seq":16,"type":"response","request_seq":9,"success":true,"command":"disconnect"}
[DEBUG codelldb::dap_session] Client has disconnected
[DEBUG codelldb::debug_session] End of the requests stream
[DEBUG codelldb::debug_session] DebugSession::drop()
[DEBUG codelldb] End of the debug session
[DEBUG codelldb] Exiting
Debug adapter exit code=0 (0x0), signal=null.