![]() |
1
1
有趣的想法,但这将有希望只在最简单的对象上工作。例如,如果对象包含指向其他对象(或vtable)的指针或引用,则这些对象不会很好地复制到新的地址空间。
但是,您可以让一个“proxy”对象工作,当您调用代理方法时,它们会对
|
![]() |
2
1
我最终只是按照我最初的直觉,将数据从dmp文件复制到一个新对象中。我把远程包装器对象做得更好,比如:
在实施过程中:
这是最基本的,但是我会根据需要在中添加特定的覆盖,以便从dmp文件中获取更多信息。此技术允许我将这些新的远程对象传递回原始源代码,以便在各种实用程序函数中进行处理,因为它们是从原始类派生的。 看来我应该可以用某种方式把这个模板化…但是每个类的实现似乎总是有一些不同的原因,例如,一些更复杂的对象有两个vtable,必须跳过这两个vtable。 |
![]() |
3
0
我知道获取内存转储一直是获取诊断信息的方法,但使用etw则容易得多,您可以获得包括信息系统调用和用户代码在内的调用堆栈信息。微软一直在为他们的所有产品做这些,包括windows和vs.net。 这是一种非侵入式的调试方法。我做同样的调试很长时间了,现在有了ETW,我可以解决大多数客户问题,而不用在调试器中花费大量时间。这是我的两分钱。 |
![]() |
AstralHex · 矩阵乘法代码工作不正常 6 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 6 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 6 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 6 月前 |