相关疑难解决方法(0)

无法评估功能 - 可能内联

我写了一个与此类似的函数:

class abc {
    private :
    int m_var ;
    public :
    int func() { return m_var ; }
};
Run Code Online (Sandbox Code Playgroud)

当我尝试打印func()使用abc对象指针时gdb,它给出错误:

**Cannot evaluate function -- may be inlined**

如何从内联函数中打印值?

c++ gdb

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

在GDB中调用lambda函数

#include <iostream>                                                             

void do_something(void) {                                                       
        std::cout << "blah blah" << std::endl;                                  

        auto lambda_func = [](void){                                            
                std::cout << "in lambda" << std::endl;                          
                return;                                                         
        };                                                                      

        lambda_func();                                                          

        std::cout << "..." << std::endl;                                        

        return;                                                                 
}                                                                               

int main(int argc, char **argv) {                                               
        do_something();                                                         
        return 0;                                                               
}
Run Code Online (Sandbox Code Playgroud)

在这个示例程序中,如果你编译(g++ gdb-call-lambda.cpp --std=c++11 -g)然后在gdb(gdb ./a.out)中运行它,你可以让GDB调用任何"普通"函数.例:

(gdb) break main
Breakpoint 1 at 0x4008e7: file gdb-call-lambda.cpp, line 20.
(gdb) r
Starting program: /home/keithb/dev/mytest/gdb-call-lambda/a.out 

Breakpoint 1, main (argc=1, argv=0x7fffffffdfb8) at gdb-call-lambda.cpp:20
20      do_something();
(gdb) call do_something()
blah blah …
Run Code Online (Sandbox Code Playgroud)

lambda gdb c++11

13
推荐指数
1
解决办法
1918
查看次数

C++,STL,GDB:无法评估函数内联

我希望能够使用GDB从STL容器中获取地址并打印一对.

IE:鉴于以下玩具计划:

#include <map>

int main() 
{
  std::map<int,int> amap;
  amap.insert(std::make_pair(1,2));

}
Run Code Online (Sandbox Code Playgroud)

当我尝试检查地图的单个元素时(例如p amap.begin()),我得到:

"无法评估功能 - 可能是内联的"

删除优化并启用完整调试模式,即(-O0和-g3)不起作用.

为什么会发生这种情况,我该如何解决?

c++ gdb

5
推荐指数
2
解决办法
2950
查看次数

标签 统计

gdb ×3

c++ ×2

c++11 ×1

lambda ×1