小编Pau*_*mta的帖子

在使用boost :: optional时,如何绕过GCC'*((void*)&b +4)'可以在此函数警告中未初始化

我有类似以下代码:

#include <boost/optional.hpp>

::boost::optional<int> getitem();

int go(int nr)
{
  boost::optional<int> a = getitem();
  boost::optional<int> b;

  if (nr > 0)
    b = nr;

  if (a != b)
    return 1;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用Boost 1.53使用GCC 4.7.2进行编译时,使用以下命令:

g ++ -c -O2 -Wall -DNDEBUG

发出以下警告:

13:3:警告:' ((void)&b +4)'可以在此函数中未初始化使用[-Wyybe-uninitialized]

显然,根本问题在于海湾合作委员会.请参阅GCC Bugzilla 有没有人知道解决方法?

c++ boost g++ boost-optional

28
推荐指数
3
解决办法
8753
查看次数

Svchost:如何使每个svchost.exe实例只运行一个模块?如何获得扩展的流程信息?

我的一个应用程序有问题.我运行应用程序,一切都很好.当我关闭这个应用程序时,我注意到系统中的一个"svchost"进程占用了大约95-100%的CPU,我必须弄清楚占用了多少CPU周期.

关于如何解决这个问题,我为自己设定了非常简单明了的目标:

  1. 获取进程信息或这个占用如此多CPU的"svchost"
  2. 我知道什么是svchost进程,所以我拯救你们努力向我解释它.所以现在我必须知道这个流氓svchost加载了哪些模块.
  3. 我运行我的应用程序,关闭它并确保我的进程完全关闭,而不是内存.然后我得到了svchost的PID占用了100%的CPU
  4. 我运行了ProcessExplorer(来自sysinternals),获得了有关此svchost托管的服务数量和信息的信息.他们约有12项服务.我不打扰这个列表,因为我更关心如何识别这12个服务中的哪一个占用了CPU周期.
  5. 现在我有了我的列表,这里开始了棘手的部分......我想做下面两个选项中的一个

选项1: 如何识别这12个服务中哪一个占用了这么多CPU?我是否可以获得有关此svchost流程的扩展信息,该流程为我提供了有关此流程中托管的"每个服务"的详细信息,我现在在流程基础上提供了哪些信息?

选项2: 是否可以配置窗口使svchost每个svchost实例只运行一个服务?

如果有更好的选择如何调查,缩小这个问题的根本原因,请告诉我.

windows-services process windows-7 process-explorer

19
推荐指数
2
解决办法
8626
查看次数