原始问题:
为什么VS c ++版本中的this指针为0?
在使用/ Zi(编译器:调试信息格式 - 程序数据库)和/ DEBUG(链接器:生成调试信息,是)选项打破Visual Studio 2008 SP1发行版时,为什么'this'指针总是0x00000000?
编辑:改述问题:
我原来的问题很不清楚,对不起.当使用Visual Studio 2008调试器逐步执行程序时,我可以看到除本地对象的成员变量之外的所有变量.这可能是因为调试器从this指针派生这些,但VS总是说它是0x00000000,所以它不能导出当前对象的成员变量(它不知道对象的内存位置)
当加载一个megadump(就像一个Windows minidump,但包含进程的整个内存空间)时,我可以查看所有我的局部变量(在函数中定义)和堆上的整个树结构,即使我有指针.
例如:在Release模式下打破A :: foo()时
'this'将有值0x00000000'f_
'将显示垃圾
不知何故,这些信息需要提供给流程.这是VS2008中缺少的功能吗?是否有其他正确处理此问题的调试器?
class A
{
void foo() { /*break here*/ }
int f_;
};
Run Code Online (Sandbox Code Playgroud) 在Windows 7 64位上,我使用Qt 4.5.3来调用QFileDialog :: getSaveFileName.在调用此函数时,我的进程立即崩溃并显示消息"RPC服务器不可用".
我找到了这个,但它没有解决我的问题: "RPC服务器不可用"
有任何想法吗?
我有一个HANDLE列表,由许多不同的IO设备控制.什么是(性能)差异:
WaitForMultipleObjects O(n)时间是否与n的句柄数量复杂?
你可以在Windows :: basic_handle上以某种方式调用async_read吗?或者这个假设是错的?
如果我在多个线程中调用同一IO设备上运行,那么这些线程之间的处理调用是否会平衡?这将是使用asio的主要好处.
根据http://msdn.microsoft.com/en-us/library/yd4f8bd1.aspx,项目有2个.pdb文件.
project.pdb我用来允许稍后加载minidumps,但vcx0.pdb究竟用于什么?如果它丢失了,那不是问题,我不需要存储任何东西.
我正在尝试在不同的项目中共享PCH,这个文件是导致问题的唯一因素.如果我将使用PCH创建的vcx0.pdb复制到所有项目,那些项目将使用此文件作为基础并向其添加自己的符号.如果不为这些项目提供此.pdb文件,则会失败.
我发现了几件事: