cortex-debug
cortex-debug copied to clipboard
Disassembly view not working with JLink in Docker container
This error occurs when attempting to open the disassembly view.
Unable to disassemble: Error: Could not find an instruction at the baseAddress. Something is not right. Please report this problem: {"command":"disassemble","arguments":{"memoryReference":"0x000058c4","offset":0,"instructionOffset":-50,"instructionCount":50,"resolveSymbols":true},"type":"request","seq":25}
Debugging works as expected otherwise.
launch.json: { "version": "0.2.0", "configurations": [ { "name": "Cortex Debug", "cwd": "${workspaceFolder}", "executable": "./myapp.out", "request": "launch", "type": "cortex-debug", "runToEntryPoint": "main", "servertype": "jlink", "serverpath": "JLinkGDBServerCLExe", "ipAddress": "192.168.50.123", "device": "EFR32MG21A020F1024IM32", "showDevDebugOutput": "raw", "rtos": "FreeRTOS", "rttConfig": { "enabled": true, "address": "auto", "decoders": [ { "label": "", "port": 0, "type": "console" } ] } } ] }
Environment (please complete the following information):
- Cortex-Debug Version (this extension) [v1.12.1]
- OS: [Ubuntu 22.04 Docker container on Windows 11 host]
- GDB Version: [12.1]
- Compiler Toolchain Version: [e.g. arm-none-eabi 10.3.1]
Attach text from Debug Console
Cortex-Debug: VSCode debugger extension version 1.12.1 git(652d042). Usage info: https://github.com/Marus/cortex-debug#usage
"configuration": {
"name": "Cortex Debug",
"cwd": "/workspaces/SmartSwitchBleOtN2kTest",
"executable": "/workspaces/SmartSwitchBleOtN2kTest/SmartSwitchBleOtN2kTest_cmake/build/SmartSwitchBleOtN2kTest.out",
"request": "launch",
"type": "cortex-debug",
"runToEntryPoint": "main",
"servertype": "jlink",
"serverpath": "JLinkGDBServerCLExe",
"ipAddress": "192.168.50.123",
"device": "EFR32MG21A020F1024IM32",
"showDevDebugOutput": "raw",
"rtos": "GDBServer/RTOSPlugin_FreeRTOS.so",
"rttConfig": {
"enabled": true,
"address": "auto",
"decoders": [
{
"label": "",
"port": 0,
"type": "console"
}
]
},
"__configurationTarget": 6,
"gdbServerConsolePort": 55878,
"pvtAvoidPorts": [],
"chainedConfigurations": {
"enabled": false
},
"debuggerArgs": [],
"swoConfig": {
"enabled": false,
"decoders": [],
"cpuFrequency": 0,
"swoFrequency": 0,
"source": "probe"
},
"graphConfig": [],
"preLaunchCommands": [],
"postLaunchCommands": [],
"preAttachCommands": [],
"postAttachCommands": [],
"preRestartCommands": [],
"postRestartCommands": [],
"preResetCommands": [],
"postResetCommands": [],
"interface": "swd",
"toolchainPrefix": "arm-none-eabi",
"gdbPath": "gdb-multiarch",
"objdumpPath": "objdump",
"extensionPath": "/root/.vscode-server/extensions/marus25.cortex-debug-1.12.1",
"registerUseNaturalFormat": true,
"variableUseNaturalFormat": true,
"pvtVersion": "1.12.1",
"__sessionId": "121cbc48-e4f5-4e79-b953-b93537ca09f5",
"pvtShowDevDebugOutput": "raw"
}
Reading symbols from objdump --syms -C -h -w /workspaces/SmartSwitchBleOtN2kTest/SmartSwitchBleOtN2kTest_cmake/build/SmartSwitchBleOtN2kTest.out
Reading symbols from nm --defined-only -S -l -C -p /workspaces/SmartSwitchBleOtN2kTest/SmartSwitchBleOtN2kTest_cmake/build/SmartSwitchBleOtN2kTest.out
Launching GDB: gdb-multiarch -q --interpreter=mi2
1-gdb-version
Launching gdb-server: JLinkGDBServerCLExe -singlerun -nogui -if swd -port 50000 -swoport 50001 -telnetport 50002 -device EFR32MG21A020F1024IM32 -rtttelnetport 19021 -select ip=192.168.50.123 -rtos GDBServer/RTOSPlugin_FreeRTOS.so
Please check TERMINAL tab (gdb-server) for output from JLinkGDBServerCLExe
-> =thread-group-added,id="i1"
-> ~"GNU gdb (Ubuntu 12.1-0ubuntu1~22.04) 12.1\n"
-> ~"Copyright (C) 2022 Free Software Foundation, Inc.\n"
-> ~"License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law."
-> ~"\nType "show copying" and "show warranty" for details.\n"
-> ~"This GDB was configured as "x86_64-linux-gnu".\n"
-> ~"Type "show configuration" for configuration details.\n"
-> ~"For bug reporting instructions, please see:\n"
-> ~"https://www.gnu.org/software/gdb/bugs/.\n"
-> ~"Find the GDB manual and other documentation resources online at:\n http://www.gnu.org/software/gdb/documentation/."
-> ~"\n\n"
-> ~"For help, type "help".\n"
-> ~"Type "apropos word" to search for commands related to "word".\n"
-> 1^done
2-gdb-set mi-async on
-> 2^done
3-interpreter-exec console "set print demangle on"
-> 3^done
4-interpreter-exec console "set print asm-demangle on"
-> =cmd-param-changed,param="print asm-demangle",value="on"
-> 4^done
5-enable-pretty-printing
-> 5^done
6-interpreter-exec console "source /root/.vscode-server/extensions/marus25.cortex-debug-1.12.1/support/gdbsupport.init"
-> 6^done
7-interpreter-exec console "source /root/.vscode-server/extensions/marus25.cortex-debug-1.12.1/support/gdb-swo.init"
-> =cmd-param-changed,param="language",value="c"
-> =cmd-param-changed,param="language",value="auto"
-> 7^done
8-interpreter-exec console "set output-radix 0xa"
-> ~"Output radix now set to decimal 10, hex a, octal 12.\n"
Output radix now set to decimal 10, hex a, octal 12.
-> 8^done
9-interpreter-exec console "set input-radix 0xa"
-> ~"Input radix now set to decimal 10, hex a, octal 12.\n"
Input radix now set to decimal 10, hex a, octal 12.
-> 9^done
10-file-exec-and-symbols "/workspaces/SmartSwitchBleOtN2kTest/SmartSwitchBleOtN2kTest_cmake/build/SmartSwitchBleOtN2kTest.out"
Finished reading symbols from objdump: Time: 205 ms
-> 10^done
11-target-select extended-remote localhost:50000
-> =thread-group-started,id="i1",pid="42000"
-> =thread-created,id="1",group-id="i1"
-> ~"0x000058c4 in EMU_EnterEM1 () at /workspaces/SmartSwitchBleOtN2kTest/SmartSwitchBleOtN2kTest_cmake/../gecko_sdk_4.2.2/platform/emlib/inc/em_emu.h:1315\n"
0x000058c4 in EMU_EnterEM1 () at /workspaces/SmartSwitchBleOtN2kTest/SmartSwitchBleOtN2kTest_cmake/../gecko_sdk_4.2.2/platform/emlib/inc/em_emu.h:1315
-> ~"1315\t}\n"
1315 }
-> *stopped,frame={addr="0x000058c4",func="EMU_EnterEM1",args=[],file="/workspaces/SmartSwitchBleOtN2kTest/SmartSwitchBleOtN2kTest_cmake/../gecko_sdk_4.2.2/platform/emlib/inc/em_emu.h",fullname="/workspaces/SmartSwitchBleOtN2kTest/gecko_sdk_4.2.2/platform/emlib/inc/em_emu.h",line="1315",arch="armv8-m.main"},thread-id="1",stopped-threads="all"
mi2.status = stopped
Program stopped, probably due to a reset and/or halt issued by debugger
-> 11^connected
12-interpreter-exec console "monitor halt"
-> 12^done
13-interpreter-exec console "monitor reset"
-> @"Resetting target\r\n"
Resetting target
-> 13^done
14-target-download
-> 14+download,{section=".text",section-size="458112",total-size="29231231"}
-> 14+download,{section=".text",section-sent="16048",section-size="458112",total-sent="16048",total-size="29231231"}
-> 14+download,{section=".ARM.exidx",section-size="8",total-size="29231231"}
-> 14+download,{section=".copy.table",section-size="12",total-size="29231231"}
-> 14+download,{section=".data",section-size="4032",total-size="29231231"}
-> 14^done,address="0x00000b54",load-size="462164",transfer-rate="616218664",write-rate="14442"
15-interpreter-exec console "monitor reset"
-> @"Resetting target\r\n"
Resetting target
-> 15^done
Reusing RTT terminal for channel 0 on tcp port 19021
Returning dummy thread-id to workaround VSCode issue with pause button not working
Returning dummy stack frame to workaround VSCode issue with pause button not working: {"threadId":1,"startFrame":0,"levels":20}
16-interpreter-exec console "monitor exec memU32 0x20001800 = 0"
-> @"Executed memU32 0x20001800 = 0\r\n"
Executed memU32 0x20001800 = 0
-> 16^done
17-interpreter-exec console "monitor exec memU32 0x20001804 = 0"
-> @"Executed memU32 0x20001804 = 0\r\n"
Executed memU32 0x20001804 = 0
-> 17^done
18-interpreter-exec console "monitor exec memU32 0x20001808 = 0"
-> @"Executed memU32 0x20001808 = 0\r\n"
Executed memU32 0x20001808 = 0
-> 18^done
19-interpreter-exec console "monitor exec SetRTTAddr 0x20001800"
-> @"Executed SetRTTAddr 0x20001800\r\n"
Executed SetRTTAddr 0x20001800
-> 19^done
20-break-insert -t --function main
-> 20^done,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0005d716",func="main()",file="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",fullname="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",line="34",thread-groups=["i1"],times="0",original-location="-function main"}
21-exec-continue --all
-> 21^running
-> *running,thread-id="all"
mi2.status = running
-> =thread-created,id="2",group-id="i1"
-> ~"[New Thread 1]\n"
[New Thread 1]
-> =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x0005d716",func="main()",file="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",fullname="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",line="34",thread-groups=["i1"],times="1",original-location="-function main"}
-> =thread-exited,id="1",group-id="i1"
-> ~"[Switching to Thread 1]\n"
[Switching to Thread 1]
-> ~"\n"
-> ~"Thread 2 hit Temporary breakpoint 1, main () at /workspaces/SmartSwitchBleOtN2kTest/main.cpp:34\n" Thread 2 hit Temporary breakpoint 1, main () at /workspaces/SmartSwitchBleOtN2kTest/main.cpp:34 -> ~"34\t sl_system_init();\n" 34 sl_system_init(); -> *stopped,reason="breakpoint-hit",disp="del",bkptno="1",frame={addr="0x0005d716",func="main",args=[],file="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",fullname="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",line="34",arch="armv8-m.main"},thread-id="2",stopped-threads="all" mi2.status = stopped -> =breakpoint-deleted,id="1" 22-thread-list-ids -> 22^done,thread-ids={thread-id="2"},current-thread-id="2",number-of-threads="1" 23-thread-info 2 -> 23^done,threads=[{id="2",target-id="Thread 1",details="Current Execution",frame={level="0",addr="0x0005d716",func="main",args=[],file="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",fullname="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",line="34",arch="armv8-m.main"},state="stopped"}] 24-stack-list-frames --thread 2 0 19 -> 24^done,stack=[frame={level="0",addr="0x0005d716",func="main",file="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",fullname="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",line="34",arch="armv8-m.main"}] Debug-15: Enqueuing {"command":"disassemble","arguments":{"memoryReference":"0x0005d716","offset":0,"instructionOffset":-50,"instructionCount":50,"resolveSymbols":true},"type":"request","seq":15} 25-interpreter-exec console "show architecture" -> ~"The target architecture is set to "auto" (currently "armv8-m.main").\n" -> 25^done 26-interpreter-exec console "info mem" -> ~"Using memory regions provided by the target.\n" -> ~"There are no memory regions defined.\n" -> 26^done Note: We detected the following memory regions as valid using gdb "info mem" and "objdump -h" This information is used to adjust bounds only when normal disassembly fails.
Using following memory regions for disassembly
Size VMA Beg VMA End LMA Beg LMA End Attributes
================================================================================ Unfortunately, No memory information from gdb (or gdb-server). Will try to manage without
0006fd80 00000000 0006fd80 -------- -------- (.text) contents alloc load readonly code 00000008 0006fd80 0006fd88 -------- -------- (.ARM.exidx) contents alloc load readonly data 0000000c 0006fd88 0006fd94 -------- -------- (.copy.table) contents alloc load data 00001000 20000000 20001000 -------- -------- (.stack) alloc 00000fc0 20001000 20001fc0 0006fd94 00070d54 (.data) contents alloc load code 00011d70 20001fc0 20013d30 00070d54 00082ac4 (.bss) alloc
Debug-15: Dequeuing... Debug: Gdb command: -data-disassemble -s 0x0005d5c5 -e 0x0005d717 -- 5 338 bytes (_HandleIncomingPacket) Suppressing output for '27-data-disassemble -s 0x0005d5c5 -e 0x0005d717 -- 5' Debug: data-disassemble -s 0x0005d5c5 -e 0x0005d717 -- 5 => Found 117 instructions. 117 with source code, 0 without 28-thread-list-ids -> 28^done,thread-ids={thread-id="2"},current-thread-id="2",number-of-threads="1" 29-thread-info 2 -> 29^done,threads=[{id="2",target-id="Thread 1",details="Current Execution",frame={level="0",addr="0x0005d716",func="main",args=[],file="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",fullname="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",line="34",arch="armv8-m.main"},state="stopped"}] 30-stack-info-frame --thread 2 --frame 0 -> 30^done,frame={level="0",addr="0x0005d716",func="main",file="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",fullname="/workspaces/SmartSwitchBleOtN2kTest/main.cpp",line="34",arch="armv8-m.main"} 31-stack-list-variables --thread 2 --frame 0 --simple-values -> 31^done,variables=[] Finished reading symbols from nm: Time: 6083 ms 32-exec-continue --thread 2 -> 32^running -> *running,thread-id="all" mi2.status = running 33-exec-interrupt -> 33^done -> =thread-created,id="3",group-id="i1" -> ~"[New Thread 536900672]\n" [New Thread 536900672] -> =thread-exited,id="2",group-id="i1" -> =thread-created,id="4",group-id="i1" -> ~"[New Thread 536901404]\n" [New Thread 536901404] -> =thread-created,id="5",group-id="i1" -> ~"[New Thread 536914760]\n" [New Thread 536914760] -> =thread-created,id="6",group-id="i1" -> ~"[New Thread 536926296]\n" [New Thread 536926296] -> =thread-created,id="7",group-id="i1" -> ~"[New Thread 536913632]\n" [New Thread 536913632] -> =thread-created,id="8",group-id="i1" -> ~"[New Thread 536924040]\n" [New Thread 536924040] -> =thread-created,id="9",group-id="i1" -> ~"[New Thread 536919576]\n" [New Thread 536919576] -> =thread-created,id="10",group-id="i1" -> ~"[New Thread 536920680]\n" [New Thread 536920680] -> =thread-created,id="11",group-id="i1" -> ~"[New Thread 536922912]\n" [New Thread 536922912] -> =thread-created,id="12",group-id="i1" -> ~"[New Thread 536925168]\n" [New Thread 536925168] -> =thread-created,id="13",group-id="i1" -> ~"[New Thread 536915376]\n" [New Thread 536915376] -> =thread-created,id="14",group-id="i1" -> ~"[New Thread 536911480]\n" [New Thread 536911480] -> =thread-created,id="15",group-id="i1" -> ~"[New Thread 536921784]\n" [New Thread 536921784] -> ~"\nThread "
Thread
-> ~"3 received signal SIGTRAP, Trace/breakpoint trap.\n"
3 received signal SIGTRAP, Trace/breakpoint trap.
-> ~"[Switching to Thread 536900672]\n"
[Switching to Thread 536900672]
-> ~"0x000058c4 in EMU_EnterEM1 () at /workspaces/SmartSwitchBleOtN2kTest/SmartSwitchBleOtN2kTest_cmake/../gecko_sdk_4.2.2/platform/emlib/inc/em_emu.h:1315\n"
0x000058c4 in EMU_EnterEM1 () at /workspaces/SmartSwitchBleOtN2kTest/SmartSwitchBleOtN2kTest_cmake/../gecko_sdk_4.2.2/platform/emlib/inc/em_emu.h:1315
-> ~"1315\t}\n"
1315 }
-> *stopped,reason="signal-received",signal-name="SIGTRAP",signal-meaning="Trace/breakpoint trap",frame={addr="0x000058c4",func="EMU_EnterEM1",args=[],file="/workspaces/SmartSwitchBleOtN2kTest/SmartSwitchBleOtN2kTest_cmake/../gecko_sdk_4.2.2/platform/emlib/inc/em_emu.h",fullname="/workspaces/SmartSwitchBleOtN2kTest/gecko_sdk_4.2.2/platform/emlib/inc/em_emu.h",line="1315",arch="armv8-m.main"},thread-id="3",stopped-threads="all"
mi2.status = stopped
34-thread-list-ids
-> 34^done,thread-ids={thread-id="3",thread-id="4",thread-id="5",thread-id="6",thread-id="7",thread-id="8",thread-id="9",thread-id="10",thread-id="11",thread-id="12",thread-id="13",thread-id="14",thread-id="15"},current-thread-id="3",number-of-threads="13"
35-thread-info 3
-> 35^done,threads=[{id="3",target-id="Thread 536900672",details="IDLE: Running [P: 0]",frame={level="0",addr="0x000058c4",func="EMU_EnterEM1",args=[],file="/workspaces/SmartSwitchBleOtN2kTest/SmartSwitchBleOtN2kTest_cmake/../gecko_sdk_4.2.2/platform/emlib/inc/em_emu.h",fullname="/workspaces/SmartSwitchBleOtN2kTest/gecko_sdk_4.2.2/platform/emlib/inc/em_emu.h",line="1315",arch="armv8-m.main"},state="stopped"}]
36-thread-info 4
-> 36^done,threads=[{id="4",target-id="Thread 536901404",details="Tmr Svc: Suspended [P: 40]",frame={level="0",addr="0x00048860",func="vPortYield",args=[],file="/workspaces/SmartSwitchBleOtN2kTest/gecko_sdk_4.2.2/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c",fullname="/workspaces/SmartSwitchBleOtN2kTest/gecko_sdk_4.2.2/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c",line="731",arch="armv8-m.main"},state="stopped"}]
37-thread-info 5
-> 37^done,threads=[{id="5",target-id="Thread 536914760",details="Name Spac: Suspended [P: 24]",frame={level="0",addr="0x00048860",func="vPortYield",args=[],file="/workspaces/SmartSwitchBleOtN2kTest/gecko_sdk_4.2.2/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c",fullname="/workspaces/SmartSwitchBleOtN2kTest/gecko_sdk_4.2.2/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c",line="731",arch="armv8-m.main"},state="stopped"}]
38-thread-info 6
-> 38^done,threads=[{id="6",target-id="Thread 536926296",details="CZone Hea: Suspended [P: 24]",frame={level="0",addr="0x00048860",func="vPortYield",args=[],file="/workspaces/SmartSwitchBleOtN2kTest/gecko_sdk_4.2.2/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c",fullname="/workspaces/SmartSwitchBleOtN2kTest/gecko_sdk_4.2.2/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c",line="731",arch="armv8-m.main"},state="stopped"}]
39-thread-info 7
-> 39^done,threads=[{id="7",target-id="Thread 536913632",details="canContro: Suspended [P: 40]",frame={level="0",addr="0x00048860",func="vPortYield",args=[],file="/workspaces/SmartSwitchBleOtN2kTest/gecko_sdk_4.2.2/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c",fullname="/workspaces/SmartSwitchBleOtN2kTest/gecko_sdk_4.2.2/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c",line="731",arch="armv8-m.main"},state="stopped"}]
40-thread-info 8
-> 40^done,threads=[{id="8",target-id="Thread 536924040",details="N2K TX: Suspended [P: 24]",frame={level="0",addr="0x00048860",func="vPortYield",args=[],file="/workspaces/SmartSwitchBleOtN2kTest/gecko_sdk_4.2.2/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c",fullname="/workspaces/SmartSwitchBleOtN2kTest/gecko_sdk_4.2.2/util/third_party/freertos/kernel/portable/GCC/ARM_CM33_NTZ/non_secure/port.c",line="731",arch="armv8-m.main"},state="stopped"}]
41-thread-info 9
-> 41^done,threads=[{id="9",target-id="Thread 536919576",details="otMainThr: Suspended [P: 24]",frame={level="0",addr="0x00000000",func="cleanup_glue",args=[{name="glue",value="