代码改变世界

Debugging Visualizer for UEFI type

2010-05-24 15:31  atempcode  阅读(472)  评论(0编辑  收藏  举报

UEFI的code里大量使用了double linked list, 每次跟踪时查看list node总是那么痛苦. 在Visual Studio里, autoexp.dat 可以定制对复杂类型的"可视化"查看. 这个文件是在 Program Files\Microsoft Visual Studio 9.0\Common7\Packages\Debugger 下, 不过我并不准备去直接修改它. 一个文档没有记载的小窍门是你可以写一个自己的定义文件, 放在任意路径下, 然后设置环境变量 _vcee_autoexp 指向这个文件. 记得这个文件要以以[Visualizer]开头.

下面就是我为_EFI_LIST_ENTRY写的Visualizer:

[Visualizer]
_EFI_LIST_ENTRY{
    children(
            #list(
                head: $e.BackLink,
                next: BackLink,
            ) : &$e
    )
}

看看效果:

example


Item->Protocols,! 是用缺省的方法显示数据, Item->Protocols 就是用了我们的Visualizer 了, list里的成员以子节点的形式一一显示, 直观多了.