调试可视化器在预览中使用成员方法/函数调用?

使用Visual Studio 2010和本机C ++。 编辑autoexp.dat时,是否可以在调试可视化器预览中使用方法调用的结果?

例如,如果我的课程是Person,我该如何执行以下操作:

MyNamespace::Person{
  preview(
    #("FirstName=", $e->GetFirstName())
  )
}

(你可能会问为什么我不只是获得私有成员变量数据,这是因为GetFirstName()委托给第三方库方法调用,所以我没有访问数据成员的原因。另一个原因可能是方法执行一些计算)。


您可能需要查看以下内容:

  • https://svn.boost.org/svn/boost/sandbox/boost_docs/subprojects/DebuggerVisualizers/boost__DateTime.msvc8.vis.txt
  • https://svn.boost.org/svn/boost/sandbox/boost_docs/subprojects/DebuggerVisualizers/date_time_visualizer.hpp
  • 有关用户定制功能的评论,请参阅此处:

  • http://www.virtualdub.org/blog/pivot/entry.php?id=120

  • 否Visual Studio调试器仅支持直接读取虚拟内存。 支持e-> GetFirstName()将需要对GetFirstName()函数进行自省,如果GetFirstName()不平凡或虚拟(更糟但GetFirstName()可能有副作用或崩溃),这可能会非常复杂。 更改autoexp.dat不会让你解决这个问题。

    如果你真的想获得这个功能,你可以添加一个新的只调试成员函数,比如std :: string * _firstName,并将它指向构造Person的GetFirstName(),然后使用autoexp.dat解引用并为你显示这个变量。

    链接地址: http://www.djcxy.com/p/52919.html

    上一篇: Debug Visualizer use member method / function call in preview?

    下一篇: Is there existing support in tomcat for a JDBCRealm that takes in a salt?