千家信息网

Shell中Debug命令怎么用

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,小编给大家分享一下Shell中Debug命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用Host的Target
千家信息网最后更新 2025年01月31日Shell中Debug命令怎么用

小编给大家分享一下Shell中Debug命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

使用Host的Target Server与Target的WDB Agent连接后,既可以使用 Workbench的Debugger进行图形化的在线调试,也可以使用 Host Shell的gdb进行命令行的调试。
如果没有Target Connection呢?其实VxWorks还提供了一个专门用在Shell里的dbgLib - debugging facilities(INCLUDE_DEBUG)
-> dbgHelpb                               Display breakpoints and eventpointsb         addr[,task[,count [,quiet]]]                                Set breakpointbi        [bpId]                Display breakpoint(s) detailed informatione         addr[,eventNo[,task[,func[,arg]]]]] Set eventpointdprintf   addr,task,count,fmtStr[,args]                                Set dynamic printf eventpointbd        addr[,task]           Delete breakpointbdall     [task]                Delete all breakpoints and eventpointsc         [task[,addr[,addr1]]] Continue from breakpointcret      [task]                Continue to subroutine returns         [task[,addr[,addr1]]] Single stepso        [task]                Single step/step over subroutinel         [adr[,nInst]]         List disassembled memorytt        [task]                Do stack trace on taskhdprintf  addr,access,task,count,fmtStr[,args]                                Set hardware dynamic printf eventpoint                                (bh() help entry lists access modes)bh addr[,access[,task[,count[,quiet]]]] Set hardware breakpoint         access :      0 - instruction        1 - write 1 byte                       3 - read/write 1 byte  5 - write 2 bytes                       7 - read/write 2 bytes d - write 4 bytes                       f - read/write 4 bytes 9 - write 8 bytes                       b - read/write 8 bytes

写个小栗子

#include 
void eee(){ printf("!%s\n", __FUNCTION__); }void ddd(){ printf("!%s\n", __FUNCTION__); eee(); }void ccc(){ printf("!%s\n", __FUNCTION__); ddd(); }void bbb(){ printf("!%s\n", __FUNCTION__); ccc(); }void aaa(){ printf("!%s\n", __FUNCTION__); bbb(); }

用它来试试这个dbgLib的操作

先加个断点,例如在bbb()的位置

从aaa()启动程序,新任务会在bbb()处停住

使用tt ()看一下调用栈,使用l ()看一下即将执行的汇编代码(尽管我也看不懂)

使用dprintf()加个动态事件点,例如在ddd()的位置

使用c()让程序执行到下一个断点或结束

以上是"Shell中Debug命令怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0