0%

本文分析和PCIe PRI特性相关的软硬件接口逻辑,以及相关的软件实现。

阅读全文 »

Linux下命令行运行一个app时,可以通过中划线开头的参数给app传参数。app可以 使用getopt或者是getopt_long的方式解析输入参数,glib库同样提供一组参数配置、 解析的函数。使用glib库提供的解析方式写起代码来更简单一点,本文介绍一个基本 的使用方式。

阅读全文 »

qemu里使用面向对象的模型来模拟相关的元素,可以想象这样的模拟是很合理的,比如, 用device描述一个设备的基类,pci_device可以继承device,然后vfio的pci设备又可以 继承pci_device,同时一个用纯用软件模拟的pci网络设备也可以继承pci_device。 本文描述这个基于面向对象的思路构建起来的qemux模型。分析基于qemu 5.2.92版本。

阅读全文 »

在调试qemu代码的时候可以在qemu的启动命令中增加--trace "xxx", 这样qemu代码 运行到这个地方就会把相关的内容打印出来,这个文档介绍怎么新加一个这样的trace点。

阅读全文 »

mtrace是一个GNU C库中的内存检测工具,用以检测用户态程序内存泄露 (malloc, realloc, free)。检测的原理为在程序开始时通过mtrace()为malloc等函数安装 handlers[1], malloc等函数执行时就会把相应的信息写到指定文件中(由环境变量指定)[2], 最后由一个perl脚本(/usr/bin/mtrace)解析信息。

阅读全文 »

stracestrace a.out 可以输出a.out中依次调用的系统调用,和gdb一样strace使 用系统调用pstrace实现其功能。

阅读全文 »