为了学习linux内核,通常有这两个需要可以摆脱硬件,方便的编译和运行linux可以使用图形化的工具来调试linuxqemu作为虚拟机,用来启动linux。qemu运行界面:vscode调试界面:由于Ubuntu是X86架构,为了编译arm64的文件,需要安装交叉编译工具链linux内核源码可以在github上直接下载。启动linux内核
为了学习linux内核,通常有这两个需要可以摆脱硬件,方便的编译和运行linux可以使用图形化的工具来调试linuxqemu作为虚拟机,用来启动linux。qemu运行界面:vscode调试界面:由于Ubuntu是X86架构,为了编译arm64的文件,需要安装交叉编译工具链linux内核源码可以在github上直接下载。启动linux内核
嵌入式软件开发中,最常用的调试方法就是:log打印调试法及在线调试。开发STM32时,我们有IDE可以用,IDE中已经集成有调试器,配合仿真器使用起来很方便。而在嵌入式Linux中,我们如何对开发板上的arm程序进行调试呢?我们可以使用VSCode+gdb+gdbserver来调试我们arm开发板上的arm程序。
产生段错误的原因大致上有三类:访问不存在的内存地址、访问系统保护的内存地址和访问只读的内存地址。(1)设置core文件,找到段错误生成的core文件(2)利用core文件,使用GDB测试找到问题所在修改成功后,按照网上的说法,再运行程序就会生成core文件,一般路径和可执行程序一个路径。到此,coredump问题已经解决,输入q,即可退出gdb,剩下就是修改问题部分了。