李锦俊(mybios)的blog

游戏开发 C++ Cocos2d-x OpenGL DirectX 数学 计算机图形学 SQL Server

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  86 Posts :: 0 Stories :: 370 Comments :: 0 Trackbacks

公告

QQ:30743734
EMain:mybios@qq.com

常用链接

留言簿(16)

我参与的团队

最新随笔

搜索

  •  

积分与排名

  • 积分 - 351412
  • 排名 - 64

最新评论

阅读排行榜

评论排行榜

Unreal3引擎中,大量使用了自定义的模版或数据类型,比如TArray、FName、FString等等,对于这三种数据类型,我们无法在VS2005中直接查看他们的值(起码不能像std::vector/std::string一样直观查看)。
通过msdn,得知vs2005的autoexp.dat可以可以给自定义的数据类型编写可视化脚本从而实现直观的调试。
经过一番研究,实现了对Unreal3数据类型的直观的可视化调试,方法如下:

打开vs2005目录中的autoexp.dat文件

找到[AutoExpand],在[AutoExpand]的下面添加一行:
FNameEntry=<Name,su>


翻到文件最后,添加以下代码到文件的最后:

; Unreal格式的数组
TArray<*>{
    children
    (
        #array
        (
            expr :    (($T1*)($c.Data))
[$i],  
            size :    $c.ArrayNum
        )
    )
    
    preview
    ( 
        #( 
            
"[", 
            $c.ArrayNum 
,
            
"](", 
            
            #array
            (
                expr : (($T1*)($c.Data))
[$i],  
                size :     $c.ArrayNum
            )
, 
            
")"
        )
    )
}

; Unreal格式的FName
FName{
    preview(
[((FNameEntry**)FName.Names.Data)[$c.Index]])
        stringview(
[((FNameEntry**)FName.Names.Data)[$c.Index]])
}
; Unreal格式的字符串
FString{
    preview(
[$c.Data,su])
        stringview(
[$c.Data,su])
}

然后,到调试器里尽情看TArray、FString、FName等等平时不容易看的数据吧。效果图就不贴了。
此方法可以举一反三,用来实现对任意数据类型的查看。


posted on 2009-05-24 17:13 李锦俊(mybios) 阅读(3427) 评论(7)  编辑 收藏 引用 所属分类: 3D引擎开发

Feedback

# re: 在VS2005调试器中显示Unreal3的数据[未登录] 2009-05-24 19:52 董波
楼主好!  回复  更多评论
  

# re: 在VS2005调试器中显示Unreal3的数据 2009-05-24 22:07 李锦俊
@董波
沙发好:)  回复  更多评论
  

# re: 在VS2005调试器中显示Unreal3的数据 2009-05-25 11:25 亨德列克
收藏了!  回复  更多评论
  

# re: 在VS2005调试器中显示Unreal3的数据 2009-07-19 16:15 sks
请问下,你是如何读取天龙的GridInfo文件的,可以给点代码提示吗?  回复  更多评论
  

# re: 在VS2005调试器中显示Unreal3的数据 2009-07-21 14:59 李锦俊
@sks
http://www.mobilegamebase.com/blog/article.asp?id=17
这里已经有人公布了他的格式了。你可以去看看。知道了格式,要载入还不简单么:)  回复  更多评论
  

# re: 在VS2005调试器中显示Unreal3的数据[未登录] 2009-12-10 10:58 董波
我又回来了。
FStringNoInit
FName...
如果楼主能分享一下autoexp.dat就好了,哈哈。  回复  更多评论
  

# re: 在VS2005调试器中显示Unreal3的数据 2010-01-04 11:58 LK
请问下,你是如何使用VS2005编译的?? 我拿到的是VS2003的,
UnAudio.cpp有一段
#if _MSC_VER > 1310 && !defined XBOX
#error re-evaluate need for this COMPILER HACK
#endif
让我无法在VS2005编译,你那边怎么修改的呢??  回复  更多评论
  


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理