一:GDB 环境搭建
路径:.../Hi3516CV300_SDK_V1.0.3.0/osdrv/tools/board/gdb
make && make install
安装报错:
makeinfo is missing on your system
解决:
apt-get install texinfo
完成:生成gdb-arm-hisiv500-linux 为GDB 调试器,copy到目标板子上即可当成普通的GDB使用
二:GDB出错的原因及解决
遇到的问题:加了-g 编译还是出现 (no debuffing symbols found)
错误排查:
A. gcc -g main.c -o main.o
gcc -g main.o -o app
如果makefile是这样写的话就要注意是否只在gcc -g main.o -o app 这里加,这样的话就会错误,因为-g生效的是在生成.o这个步骤。
B. 是否加了-s(小写的)这个参数会把符号表从最终的可执行文件中删除
C. 使用了arm-hisiv500-linux-uclibcgnueabi-strip。看看strip的解释:“简单的说就是给文件脱掉外衣,具体就是从特定文件中剥掉一些符号信息和调试信息,使文件变小“导致了调试信息被丢掉。
如下对编译后的文件进行file发现:多了一个stripped。
root@yu-computer:/work/work/ipc_platform/av_stream/av_module/release# file av_stream
av_stream: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-, stripped