小编Dip*_*jan的帖子

如何在 gdb 中为匿名命名空间设置断点?

在我的代码库中,有一些在匿名命名空间中定义的回调函数。我正在 gdb 中调试,我想使用函数名在函数中设置断点。我还尝试使用 filename : linenum 放置断点,但是如果文件已经加载,这通常会起作用,否则它会说“找不到源文件”在将来的共享库加载时使断点挂起?(y 或 [n]) n

因此,解决方法是,一旦调试器位于同一个文件中,我就可以使用 filename : line number 设置断点

但是有没有其他方法可以在匿名命名空间内设置断点?

相关的stackoverflow 问题: 如何在Visual Studio 中的匿名命名空间内按函数名称设置断点?

但这并不能解决这里的问题。

根据stackoverflow中的一些帖子,

  1. 我尝试使用 ::function_name() 但这不起作用。
  2. 匿名命名空间::function_name()

命名空间 { int function_name(int a, int b) { return a+b; } }

“未找到源文件”/root/workspace/ProtocolInterface.cpp。在未来的共享库加载时使断点挂起?(y 或 [n]) y

即使断点挂起,它也不会在提到的函数处中断。

c++ gdb namespaces

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

如何在c ++中定义的同一文件中限制函数作用域?

我有公共成员函数调用私有成员函数.我想在私有成员函数定义可用的文件中限制私有成员函数的范围.在C中,我在函数名之前使用static来限制它在文件中的范围,我该如何在C++中实现它.

class Base
{
  public:
  void XYZ1(void);
  void XYZ2(void);
  private:
  void fun(void);
};

void Base::XYZ1(void)
{
  fun();
}

void Base::fun(void)
{
  // do something;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果在其他.cpp文件中定义了成员函数XYZ2,则不应该允许它从中调用fun().基本上将fun()函数限制为文件范围.在a1.cpp

void Base::XYZ2(void)
{
  fun();// this should result in some error saying fun() is not defined in its scope.
}
Run Code Online (Sandbox Code Playgroud)

c++ namespaces

3
推荐指数
1
解决办法
676
查看次数

在 C++ 98 中的对向量中按键查找对

我正在使用以下版本,将无法使用 C++11 g++ (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973]。

我有一个成对的向量。

  std::vector<std::pair<int, std::string> > vec;
  vec.push_back(std::make_pair(5, std::string("tata")));
  vec.push_back(std::make_pair(6, std::string("tat2")));
  vec.push_back(std::make_pair(7, std::string("tat3")));
  vec.push_back(std::make_pair(8, std::string("tat4")));
Run Code Online (Sandbox Code Playgroud)

现在我可以使用迭代器使用该对的键搜索向量中的所有元素,例如

    std::vector<std::pair<int, std::string> >:: iterator it ;
    for (it = vec.begin(); it != vec.end(); ++it)
    {
      if (it->first == item)
      {
        cout << "Found " << item << "\n";
        return 0;
      }
    }
Run Code Online (Sandbox Code Playgroud)

我希望有任何可能的方法在 C++98 中使用 std::find 操作,因为我已经搜索了相关的帖子,其中大多数都解决了 C++ 11 支持的问题。

c++ vector

0
推荐指数
1
解决办法
4387
查看次数

标签 统计

c++ ×3

namespaces ×2

gdb ×1

vector ×1