gdb 7.7 does not step-in on OS-X Mavericks with gcc4.7.3 (Macports)

我是研究僧i 提交于 2019-12-02 16:50:12

问题


Here is a simple program:

#include <iostream>
#include <vector>

namespace Example
{

  template <int dim>
  class Problem
  {
  public:

    void run() {
        std::cout<<"here.."<<std::endl;
    }   
  };
}

int main(int argc, char *argv[])
{
  Example::Problem<2> problem;
  problem.run();
  return 0;
}

compiled with Macport's gcc 4.7.3:

g++-mp-4.7 -g -O0 prog.cc -o prog

If I try to debug in gdb 7.7 (self-compiled, not Macport's one!):

$gdb
file prog
b main
r
s

I can't step-in the function:

34    problem.run();
(gdb) s
here..
36    return 0;
(gdb)

Am i doing something wrong? Or does it look like a bug of gdb when used on os-x mavericks?

UPDATE:

I don't see any warning/errors when using gdb:

$ gdb ./prog
GNU gdb (GDB) 7.7
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin13.1.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./prog...Reading symbols from /Users/bla-bla-bla/prog.dSYM/Contents/Resources/DWARF/prog...done.
done.
(gdb)

also '-gdwarf-2 -gstrict-dwarf' do not change the behaviour....

UDAPTE2:

I see the same missing call-stack behaviour as here. Although I was not able to check if compiling with -m32 helps in my case, since I have everything for 64bit and thus get undefined symbols problems.

Another stepping problem while debugging is reported here and here on SO.


回答1:


You need to add -gdwarf-2 option along with -g to debug using gdb for newer version of gcc.

g++-mp-4.7 -g -gdwarf-2 -O0 prog.cc -o prog



来源:https://stackoverflow.com/questions/22581645/gdb-7-7-does-not-step-in-on-os-x-mavericks-with-gcc4-7-3-macports

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!