Netbeans C ++中的调试无法启动 - OSX Yosemite -

时间:2015-01-23 01:25:50

标签: c++ macos debugging netbeans gdb

我无法为C ++ osx Yosemite进行调试(我尝试了不同的IDE,每个都有问题),我在google install gdb上看到了brew ......但没有。 使用NetBeans,启动调试,在控制台输出中,我得到shell gdb:

GNU gdb (GDB) 7.8.1
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.
--- Type <return> to continue, or q <return> to quit ---
This GDB was configured as "x86_64-apple-darwin14.0.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/>.
--- Type <return> to continue, or q <return> to quit ---
For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb)

我想通过使用netbeans gui进行调试,步入,跨步等.... 这是netbeans的配置:

Configuration Debug Netbeans

我还要按照以下步骤安装gdb:

http://ntraft.com/installing-gdb-on-os-x-mavericks/

由于


修改

在netbeans上调试配置:

enter image description here enter image description here enter image description here

2 个答案:

答案 0 :(得分:5)

我遇到了同样的问题。这就是我为解决它所做的事情(在优胜美地下):

  1. 安装brewhttp://brew.sh

  2. 更新brew。如果您已安装brew,请检查更新。在终端:

  3. $ brew update
    

    这一步对我来说是决定性的,因为在更新之前,brew没有找到任何gdb包:

    $ brew install gdb # Error: No available formula for gdb
    

    之后:

    $ brew update
    $ brew search | grep gdb # cgdb gdb gdbm pgdbf
    
    1. 安装gdb:
    2. $ brew install gdb
      
      1. 按照这些说明对二进制文件进行编码(类似于James指出的那些):http://sourceware.org/gdb/wiki/BuildingOnDarwin为了完整起见,我将它们复制到这里并添加一些注释:
      2.   

        创建证书

             
            
        • 启动Keychain Access应用程序(/Applications/Utilities/Keychain Access.app

        •   
        • 打开菜单/Keychain Access/Certificate Assistant/Create a Certificate...

        •   
        • 选择一个名称(示例中为gdb-cert),将Identity Type设置为Self Signed Root,将Certificate Type设置为Code Signing并选择{{ 1}}。在Let me override defaults点击几次,直到转到Continue屏幕,然​​后将Specify a Location For The Certificate设置为Keychain

        •   
        • 如果您无法将证书存储在System钥匙串中,请在System钥匙串中创建,然后将其导出。然后,您可以将其导入login钥匙串。

        •   
        • 最后,使用证书的上下文菜单,选择System,打开Get Info项,然后将Trust设置为Code Signing

        •   
        • 您必须退出Keychain Access应用程序才能使用证书并通过终止当前正在运行的taskgated进程重新启动Always Trust服务(注释:例如使用taskgated或重新启动)。

        •   

        然后

          

        授予gdb权限以控制其他进程

             

        如果证书称为sudo pkill taskgated,请使用:

        gdb-cert
             

        注释:如果找不到$ codesign -s gdb-cert gdb ,则添加安装它的路径。就我而言:

        gdb
        1. $ codesign -s gdb-cert /usr/local/Cellar/gdb/7.10/bin/gdb 字段gdb菜单中使用/usr/local/Cellar/gdb/7.10/bin/gdb或安装gdb的路径(例如/Netbeans/Preferences/C/C++/Build Tools)。

答案 1 :(得分:0)

您是否厌倦了协调gdb可执行文件?

  

Darwin内核要求调试器具有特殊权限   在允许控制其他进程之前。这些权限是   通过协调GDB可执行文件来授予。没有这些权限,   调试器将报告错误消息,例如:

Starting program: /x/y/foo
Unable to find Mach task port for process-id 28885: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))
     

代码签名需要证书。以下过程说明如何创建一个:

     
      
  • 启动Keychain Access应用程序(在/ Applications / Utilities / Keychain Access.app中)
  •   
  • 选择钥匙串   访问 - &gt;证书助理 - &gt;创建证书...菜单
  •   
  • 然后:      
        
    • 选择新证书的名称(此过程将使用   &#34; GDB证书&#34;作为一个例子)
    •   
    • 设置&#34;身份类型&#34; to&#34; Self Signed Root&#34;
    •   
    • 设置&#34;证书类型&#34;到&#34;代码签名&#34;
    •   
    • 激活&#34;让我覆盖默认值&#34;选项
    •   
  •   
  • 点击几次&#34;继续&#34;直到&#34;指定   证书的位置&#34;屏幕出现,然后设置&#34; Keychain&#34;到&#34;系统&#34;
  •   
  • 点击&#34;继续&#34;直到证书创建
  •   
  • 最后,在视图中,双击新证书,然后设置&#34;使用时   这个证书&#34;到&#34;永远信任&#34;
  •   
  • 退出Keychain Access应用程序并重启计算机(不幸的是需要这样做)
  •   
     

创建证书后,可以将调试器编码为   跟随。在终端中,运行以下命令...

codesign -f -s  "gdb-cert"  <gnat_install_prefix>/bin/gdb
     

...其中&#34; gdb-cert&#34;应该用实际的证书名称替换   选择上面,应该被替换   您安装GNAT的位置。

来源:https://gcc.gnu.org/onlinedocs/gcc-4.8.1/gnat_ugn_unw/Codesigning-the-Debugger.html