美文网首页
gdb打印DPDK mbuf

gdb打印DPDK mbuf

作者: _宋江_ | 来源:发表于2022-10-27 19:59 被阅读0次

gdb打印mbuf的方法:

vim ~/.gdbinit

handle SIGPIPE nostop noprint

define pmbuf

    set $m = (struct rte_mbuf *)$arg0

    printf "dump mbuf at %p, buf_addr:%p, buf_len=%hu, data_off=%u\n", $m, $m->buf_addr, $m->buf_len, $m->data_off

    printf "data_len=%hu, pkt_len=%d\n", $m->data_len, $m->pkt_len

    printf "ol_flags=0x%x, nb_segs=%u\n", $m->ol_flags, $m->nb_segs

    while $m

        set $data_len = $m->data_len

        set $data = $m->buf_addr + $m->data_off

        dump binary memory /tmp/dump.bin $data $data+$data_len

        shell hexdump -n 100 -C /tmp/dump.bin

        set $m = $m->next

    end

end

document pmbuf

    print mbuf

    usage: pmbuf batch->packets[0]

end

打印出的内容如下:


image.png

将数据部分保存到txt文件,打开wireshark,文件-> 从Hex转储导入既可


image.png

相关文章

  • gdb打印DPDK mbuf

    gdb打印mbuf的方法: 打印出的内容如下: 将数据部分保存到txt文件,打开wireshark,文件-> 从H...

  • DPDK编程指南(翻译)(六)

    6.报文缓冲区库 报文缓冲区库(Mbuf)提供了申请和释放缓冲区的功能,DPDK应用程序使用这些buffer存储消...

  • gdb打印技巧

    打印大数组中的内容 在gdb中,如果要打印大数组的内容,缺省最多会显示200个元素: 可以使用如下命令,设置这个最...

  • gdb打印所有堆栈

    threadapplyallbt

  • 实验室环境gdb调试

    打印单个线程的调用栈gdb attach tid handle SIGUSR2 nostop noprint se...

  • centos7 安装DPDK

    1.DPDK下载 下载dpdk18.05: wget http://fast.dpdk.org/rel/dpdk...

  • GDB高级技巧

    GDB是我们平时调试c/c++程序的利器, 查起复杂的bug问题,比打印大法要好的多,但是也不得不说, gdb在默...

  • 关于Runtime

    lldb(gdb)常用的调试命令? po:打印对象,会调用对象description方法。是print-objec...

  • iOS知识原理篇二

    lldb(gdb)常用的调试命令? po:打印对象,会调用对象description方法。是print-objec...

  • 面试 (六) : 原理篇/2

    lldb(gdb)常用的调试命令? • po:打印对象,会调用对象description方法。是print-obj...

网友评论

      本文标题:gdb打印DPDK mbuf

      本文链接:https://www.haomeiwen.com/subject/ifattdtx.html