背景:
在实际项目开发过程中,为了让低版本的CANape 工具识别elf 文件,需要在编译elf文件时,指定dwarf的版本。
使用方法:
需要再CMakeLists.txt中指定dwarf 版本
add_compile_options(-g -gdwarf-2) #-gdwarf-4
验证:
readelf --debug-dump=info ./hello.elf | grep -i 'dwarf\|version'
➜ bin git:(main) ✗ readelf --debug-dump=info ./hello.elf | grep -i 'dwarf\|version'
Version: 2
<d> DW_AT_producer : (indirect string, offset: 0x135f9): GNU C++17 11.4.0 -mtune=generic -march=x86-64 -g -g -gdwarf-2 -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection
Version: 2
<1e16b> DW_AT_producer : (indirect string, offset: 0x135f9): GNU C++17 11.4.0 -mtune=generic -march=x86-64 -g -g -gdwarf-2 -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection
Version: 2
<1e249> DW_AT_producer : (indirect string, offset: 0x135f9): GNU C++17 11.4.0 -mtune=generic -march=x86-64 -g -g -gdwarf-2 -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection