代码之家  ›  专栏  ›  技术社区  ›  R71

gdb不能与macos catalina上的visualstudio一起运行

  •  0
  • R71  · 技术社区  · 4 年前

    我在macos catalina上有一个小的hello world c++代码,而且g++/gdb是随brew一起安装的。 我试图用visualstudio代码调试这个程序,但无法运行它。

    ERROR: Unable to start debugging. Unexpected GDB output from command "-exec-run".
    Unable to find Mach task port for process-id 2400: (os/kern) failure (0x5).
     (please check gdb is codesigned - see taskgated(8))
    

    然后,为了解决这个问题,我做了以下步骤:

    最初,我尝试从命令行运行gdb,以检查它是否正常工作:

    $g++ -g hello.cpp
    $./a.out # this prints hello message as expected
    $gdb -v --> this is 9.2
    $ls -ls a.out
        96 -rwxr-xr-x  1 ... a.out --> so executable permissions are correct
    $gdb ./a.out
        Reading symbols from ./a.out...
        Reading symbols from .../a.out...
      > run
        Starting program: .../a.out 
        Unable to find Mach task port for process-id 2003: (os/kern) failure (0x5).
            (please check gdb is codesigned - see taskgated(8))
    

    1. link ,对调试器进行代码设计。我还对原始可执行文件和符号链接进行了代码签名。
    2. 链接 ,

    不过,我还是遇到了同样的错误,问题没有得到解决。

    我还尝试了将gdb版本降级到 8.01 , 但后来我遇到了另一个错误-可执行文件没有被识别, 这是一个已知的gdb错误,已经在9.2中修复,所以我回到了新版本。

    62563627 ,我作为:

    $sudo gdb ./a.out --> this command worked
        Reading symbols from ./a.out...
        Reading symbols from .../a.out...
      > run
        Starting program: .../a.out 
        [New Thread 0xe03 of process 2528]
        [New Thread 0x1703 of process 2528]
        warning: unhandled dyld version (16)
        Hello C++ World from VS Code and the C++ extension! 
        [Inferior 1 (process 2528) exited normally]
    

    所以现在gdb是从命令行工作的,但是只使用sudo。

    但是,我不能使用sudo,因为我的目标是从vs代码内部运行gdb。

    $ls -ls /usr/local/bin/gdb
    0 lrwxr-xr-x  1 rog  admin  27 Aug 29 16:05 /usr/local/bin/gdb -> ../Cellar/gdb/9.2_1/bin/gdb
    $ls -ls /usr/local/Cellar/gdb/9.2_1/bin/gdb
    50368 -rwxr-xr-x   1 rog  admin  25786928 Aug 29 16:09 gdb
    

    那么,在不使用sudo的情况下让gdb工作的解决方案是什么呢?sudo有望使gdb在vs代码中工作?或者,有没有其他方法可以让它与vs代码一起工作?

    0 回复  |  直到 4 年前