91382


Windows 10 Home上でSpresenseのSDK (IDE)環境を新規に構築しています。  
デバッガとして公式ページに載っているLCP-Link2がほぼ入手不可能な様子なので、DAP-LinkコンパチなMCU-
Linkが使えないか試すのが動機です(それができたら秋月のlPC11U35ボードも...)。単体OpenOCDで"openocd -f
interface/cmsis-dap.cfg -f target/cxd5602.cfg"でSpresenseに接続できることまでは確認しました。

・やったこと  
[Spresense公式ページ](https://developer.sony.com/develop/spresense/docs/sdk_set_up_ide_ja.html)に添って新規にMSYS2(インストーラmsys2-x86_64-20220904.exe
インストール後pacman -Syu実行済), Spresense SDK, VisualStudio
Code(1.71.2)をインストールし、Cのソースコード(普通のHelloWorld)をコンパイル、Spresenseに転送して実行できることは確認しています。  
VSCの拡張で関係ありそうなもののバージョンはこんなところです。  
Spresense VSCode IDE V1.3.200  
C/C++ V1.12.4  
C/C++ Extension Pack V1.3.0

・起こったこと  
続いて[実行とデバッグ]に入り、[デバッグの開始]をしようとしたところ、以下のエラーダイアログが表示されてデバッガに入れませんでした。  
[![エラーダイアログ](https://i.stack.imgur.com/J6iZs.png)](https://i.stack.imgur.com/J6iZs.png)

また、デバッグコンソールには以下が表示されました。

[code]

    Cortex-Debug: VSCode debugger extension version 1.6.5 git(ed64786). Usage info: https://github.com/Marus/cortex-debug#usage
    Reading symbols from c:/msys64/opt/spresenseenv/usr/bin/arm-none-eabi-objdump.exe --syms -C -h -w C:/msys64/home/User/spProjMsys1/out/spProjMsys1.nuttx 
    Reading symbols from c:/msys64/opt/spresenseenv/usr/bin/arm-none-eabi-nm.exe --defined-only -S -l -C -p C:/msys64/home/User/spProjMsys1/out/spProjMsys1.nuttx 
    Launching GDB: "c:\\msys64\\opt\\spresenseenv\\usr\\bin\\arm-none-eabi-gdb.exe" -q --interpreter=mi2 -ix .vscode/.gdbinit 
    IMPORTANT: Set "showDevDebugOutput": "raw" in "launch.json" to see verbose GDB transactions here. Very helpful to debug issues or report problems 
    Launching gdb-server: "c:\\msys64\\opt\\spresenseenv\\usr\\bin\\openocd" -c "gdb_port 50000" -c "tcl_port 50001" -c "telnet_port 50002" -s "C:\\msys64\\home\\User\\spresense\\sdk\\tools" -f "c:/Users/User/.vscode/extensions/marus25.cortex-debug-1.6.5/support/openocd-helpers.tcl" -f interface/cmsis-dap.cfg -f cxd5602.cfg 
    Please check TERMINAL tab (gdb-server) for output from c:\msys64\opt\spresenseenv\usr\bin\openocd 
    Finished reading symbols from objdump: Time: 141 ms 
    c:\msys64\opt\spresenseenv\usr\bin\arm-none-eabi-gdb.exe: warning: Couldn't determine a path for the index cache directory. 
    ERROR: GDB major version should be >= 9, yours is 8 
    GDB could not start as expected. Bad installation or version mismatch. See if you can start gdb from a shell prompt and check its version (Must be >= 9)
    
[/code]

このとき、

[code]

    arm-none-eabi-gdb -v
    GNU gdb (GNU Tools for Arm Embedded Processors 9-2019-q4-major) 8.3.0.20190709-git
    
[/code]

でした。

・試したこと  
ここで、[ARMツールチェーンの新しい版(Zip)](https://developer.arm.com/-/media/Files/downloads/gnu/12.2.mpacbti-
bet1/binrel/arm-gnu-toolchain-12.2.mpacbti-bet1-mingw-w64-i686-arm-none-
eabi.zip)をダウンロード、解凍し、/opt/spresenseenv/usr/binのarm-none-eabi-
gdb.exeをリネームして起動を止めてから新版のarm-none-eabi-gdb.exeからシンボリックリンクを張りました。この段階で、

[code]

    $ arm-none-eabi-gdb --version
    GNU gdb (Arm GNU Toolchain 12.2.MPACBTI-Bet1 (Build arm-12-mpacbti.16)) 13.0.50.20220406-git
    
[/code]

となっています。  
この状態から[デバッグの開始]を試みたところ、とりあえずソースレベルデバッグができました(ステップ実行しか試していません)。

・ちょっとだけ調査  
同様の症例がないかと'vscode gdb major
version'でググるとNordicでも[こんなの(2022/8)](https://devzone.nordicsemi.com/f/nordic-
q-a/91447/can-t-debug-ncs1-9-1-because-gdb-major-version-should-
be-9)とか[こんなの(2022/9)](https://devzone.nordicsemi.com/f/nordic-q-a/92010/gdb-
and-vscode-windows-not-working-after-gdb-version-8-forced-upgrade-to-
version-9)も引っかかるので、VSCode本体かあるいは拡張のバージョンが上がってGDBバージョンの要求が厳しくなったということかと考えていますが...

ということで、  
・公式サポートへの調査お願いと、  
・とりあえずの対応として先のシンボリックリンクって有りなの? あるいは他の手段は? というあたりをご存じの方がいらっしゃれば伺いたく思います。

よろしくお願いします。


CC BY-SA 4.0
2022-09-29T11:19:01.300
91373
2023-04-19T00:45:48.800
43952
question
spresense vscode debugging
Spresense SDK(IDE)でデバッグを行おうとするとGDBがversionエラーになる


こんにちは。  
私も同様のエラーが発生してしまったので、Cortex-Debugのバージョンを下げて対応しています。  
Cortex-Debugのバージョンを1.4.4にするとデバッグできるようです。

公式なコンパイラのバージョン更新までは thkana さんのような方法か、Cortex-Debugのバージョンを下げるかの方法をとる必要がありそうですね。


CC BY-SA 4.0
2022-09-30T03:28:58.363
91382
2022-09-30T03:28:58.363
32034
91373
answer


こんにちは。  
最近公式のSpresenseSDKとSpresenseVSCodeIDEが更新され、GDB versionエラーが発生しなくなったので報告します。  
SpresenseSDK
v3.0.0とSpresenseVSCodeIDEのバージョン「v1.4.100」が、3月13日にリリースされたようで、そのバージョンのinstall-
tools.shを使って下記リリースノートの手順でツールチェーンを更新すると  
GCCのクロスコンパイラのバージョンが10.3.1に更新されるようです。  
[v3.0.0リリースノート](https://github.com/sonydevworld/spresense/releases/tag/v3.0.0)  
また、SDKとIDE共にそのバージョンにアップデートするとGDBのバージョンエラーが起きなくなりました。  
thkana さんもアップデートすると問題解決すると思います。

ご参考になれば幸いです。


CC BY-SA 4.0
2023-04-19T00:45:48.800
94569
2023-04-19T00:45:48.800
32034
91373
answer