STMStudio異常解決:Error: Dwarf Error: wrong version in complation unit header (is 5, should be 2, 3, or 4)
引言
STM Studio 是 STMicroelectronics 推出的一款非侵入式調(diào)試工具,適用于 STM32 和 STM8 系列微控制器,能夠?qū)崟r(shí)讀取變量并圖形化顯示,輔助調(diào)試過(guò)程。近期在使用 STMStudio 導(dǎo)入 STM32Cube IDE 生成的 elf 文件時(shí),遇到如下錯(cuò)誤:
Error: Dwarf Error: wrong version in compilation unit header (is 5, should be 2, 3, or 4)
本文將介紹該錯(cuò)誤的成因與解決方案。
軟件環(huán)境
- STMStudio 版本:3.6.0
- STM32Cube IDE 版本:1.19.0
問(wèn)題原因
STM32Cube IDE 默認(rèn)生成的調(diào)試信息使用了 DWARF 5 格式,而舊版本的 STMStudio 僅支持 DWARF 2/3/4 格式,導(dǎo)致版本不兼容,無(wú)法正確讀取 elf 文件。

解決方案
通過(guò)修改 STM32Cube IDE 中的編譯設(shè)置,將調(diào)試信息格式降級(jí)為 DWARF 4,具體步驟如下:
1、在 STM32Cube IDE 中,右鍵點(diǎn)擊項(xiàng)目名稱,選擇 屬性。

2、進(jìn)入C/C++ Build → Settings。

3、在 MCU GCC Assembler → Debugging 中,將 Debug level 設(shè)置為 None。

4、在 MCU GCC Assembler → Miscellaneous 中的 Other flags 中添加 -gdwarf-4。

5、在 MCU GCC Compiler → Debugging 中,將 Debug level 設(shè)置為 None。

6、在 MCU GCC Compiler → Miscellaneous 中的 Other flags 中添加 -gdwarf-4。

7、點(diǎn)擊 應(yīng)用并保存 保存設(shè)置。
8、清理工程并重新編譯。
8、重新使用 STMStudio 導(dǎo)入新生成的 elf 文件,即可正常識(shí)別。

驗(yàn)證結(jié)果
成功導(dǎo)入 elf 文件后,可在 STMStudio 中添加變量并實(shí)時(shí)監(jiān)控,確認(rèn)功能恢復(fù)正常。




總結(jié)
本文針對(duì) STMStudio 導(dǎo)入 elf 文件時(shí)出現(xiàn)的 DWARF 版本不兼容錯(cuò)誤,提供了詳細(xì)的解決方案。通過(guò)調(diào)整 STM32Cube IDE 的調(diào)試信息格式,可有效解決該問(wèn)題,確保調(diào)試工具鏈的兼容性。
歡迎在評(píng)論區(qū)留言交流,共同探討更多調(diào)試技巧與優(yōu)化建議。