小编Pie*_*ter的帖子

Visual Studio无法在发布模式下显示"this"的值(带有调试信息)

原始问题:

为什么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)

c++ visual-studio-2008

12
推荐指数
3
解决办法
9946
查看次数

打开保存文件对话框时出现"RPC服务器不可用"消息的进程崩溃?

在Windows 7 64位上,我使用Qt 4.5.3来调用QFileDialog :: getSaveFileName.在调用此函数时,我的进程立即崩溃并显示消息"RPC服务器不可用".

我找到了这个,但它没有解决我的问题: "RPC服务器不可用"

有任何想法吗?

c++ qt windows-7

12
推荐指数
1
解决办法
8733
查看次数

在多个windows :: basic_handle上,WaitForMultipleObjects和boost :: asio有什么区别?

我有一个HANDLE列表,由许多不同的IO设备控制.什么是(性能)差异:

  1. 在所有这些句柄上调用WaitForMultipleObjects
  2. 在所有这些句柄周围的boost :: windows :: basic_handle上的async_read

WaitForMultipleObjects O(n)时间是否与n的句柄数量复杂?
你可以在Windows :: basic_handle上以某种方式调用async_read吗?或者这个假设是错的?
如果我在多个线程中调用同一IO设备上运行,那么这些线程之间的处理调用是否会平衡?这将是使用asio的主要好处.

c++ multithreading boost-asio waitformultipleobjects

5
推荐指数
1
解决办法
3343
查看次数

Visual Studio使用vc90.pdb做什么用途?

根据http://msdn.microsoft.com/en-us/library/yd4f8bd1.aspx,项目有2个.pdb文件.

project.pdb我用来允许稍后加载minidumps,但vcx0.pdb究竟用于什么?如果它丢失了,那不是问题,我不需要存储任何东西.

我正在尝试在不同的项目中共享PCH,这个文件是导致问题的唯一因素.如果我将使用PCH创建的vcx0.pdb复制到所有项目,那些项目将使用此文件作为基础并向其添加自己的符号.如果不为这些项目提供此.pdb文件,则会失败.

我发现了几件事:

  • 警告LNK4099报告缺少vcx0.pdb似乎并不重要.
  • 如果我使用/ Fd将多个项目指向同一个文件,并禁用并行构建以使其工作,则每个项目都会继续使用自己的符号递增

c++ build-automation precompiled-headers visual-studio-2008

2
推荐指数
1
解决办法
4505
查看次数