Linux下命令行运行一个app时,可以通过中划线开头的参数给app传参数。app可以 使用getopt或者是getopt_long的方式解析输入参数,glib库同样提供一组参数配置、 解析的函数。使用glib库提供的解析方式写起代码来更简单一点,本文介绍一个基本 的使用方式。
qemu qom分析
qemu里使用面向对象的模型来模拟相关的元素,可以想象这样的模拟是很合理的,比如, 用device描述一个设备的基类,pci_device可以继承device,然后vfio的pci设备又可以 继承pci_device,同时一个用纯用软件模拟的pci网络设备也可以继承pci_device。 本文描述这个基于面向对象的思路构建起来的qemux模型。分析基于qemu 5.2.92版本。
qemu PCIe设备增加pasid capability
本文介绍给一个qemu pcie设备增加pasid capability要注意的问题。
qemu里增加trace的方法
在调试qemu代码的时候可以在qemu的启动命令中增加--trace "xxx", 这样qemu代码 运行到这个地方就会把相关的内容打印出来,这个文档介绍怎么新加一个这样的trace点。
uthash和glib hash
本文是一个uthash和glib hash的学习笔记。
mtrace使用笔记
mtrace是一个GNU C库中的内存检测工具,用以检测用户态程序内存泄露 (malloc, realloc, free)。检测的原理为在程序开始时通过mtrace()为malloc等函数安装 handlers[1], malloc等函数执行时就会把相应的信息写到指定文件中(由环境变量指定)[2], 最后由一个perl脚本(/usr/bin/mtrace)解析信息。
strace使用笔记
stracestrace a.out 可以输出a.out中依次调用的系统调用,和gdb一样strace使 用系统调用pstrace实现其功能。
autoconf/automake使用笔记
本文以一个简单的例子展示怎么使用autoconf/automake工具构建一个工程
pstack使用笔记
pstack的功能是显示当前进程中函数的调用栈的关系,若是多线程的情况下, 会显示各个线程中函数调用的关系。脚本用了gdb中的bt(backtrace)功能,在gdb中输入bt即可 打印出程序当前的栈中的函数调用关系。
Linux内核模块编译
介绍linux内核模块的编译步骤