Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 断点不存在';调试C+时无法工作+;与Bazel一起在macOS high sierra建造的项目_C++_Macos_Debugging_Visual Studio Code_Bazel - Fatal编程技术网

C++ 断点不存在';调试C+时无法工作+;与Bazel一起在macOS high sierra建造的项目

C++ 断点不存在';调试C+时无法工作+;与Bazel一起在macOS high sierra建造的项目,c++,macos,debugging,visual-studio-code,bazel,C++,Macos,Debugging,Visual Studio Code,Bazel,系统详细信息 操作系统和版本:macOS high sierra 10.13.4 VS代码版本:1.25.1 C/C++扩展版本:0.17.7 已安装其他扩展 bazel:0.10.0-自制 lldb:lldb-902.0.79.2 gdb:GNUGDB(gdb)8.0.1 错误描述 我使用BAZEL来构建一个教程C++项目。源代码非常简单,如下: #include <iostream> #include <string> using namespace std

系统详细信息

  • 操作系统和版本:macOS high sierra 10.13.4
  • VS代码版本:1.25.1
  • C/C++扩展版本:0.17.7
  • 已安装其他扩展
    • bazel:0.10.0-自制
    • lldb:lldb-902.0.79.2
    • gdb:GNUGDB(gdb)8.0.1
错误描述

我使用BAZEL来构建一个教程C++项目。源代码非常简单,如下:

#include <iostream>
#include <string>

using namespace std;

void greet(const string& person) {
    cout << "Hello, " << person << "!" << endl;
}

int main(int argc, char** argv) {
    if(argc >= 2) {
        greet(argv[1]);
    } else {
        int x = 0;
        int y = 0;
        int c;
        c = x * y;
        cerr << "insufficient args, usage: " << argv[0] << " personNameHere" << endl;
    }
    return 0;
}
${workspaceFolder}/bazel out/darwin dbg/bin/hello/main

然后在vs代码中使用lldb进行调试。假设我在第11行设置了一个调试标志,它是
intmain(intargc,char**argv){

My launch.json描述如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/bazel-out/darwin-dbg/bin/hello/main",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "lldb"
        }
    ]
}
然后我按下调试面板中的调试按钮。 然而,它从不停在第11行。所有调试标记都变成灰色,当我将鼠标悬停在上面时,它会告诉我:“未检查的断点”

vs代码终端输出结果如下所示:

Loaded '/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib'. Symbols loaded.
Loaded '/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib'. Symbols loaded.
Loaded '/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib'. Symbols loaded.
Loaded '/usr/lib/libcups.2.dylib'. Symbols loaded.
Loaded '/System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos'. Symbols loaded.
Loaded '/System/Library/Frameworks/GSS.framework/Versions/A/GSS'. Symbols loaded.
Loaded '/usr/lib/libresolv.9.dylib'. Symbols loaded.
Loaded '/usr/lib/libiconv.2.dylib'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal'. Symbols loaded.
Loaded '/usr/lib/libheimdal-asn1.dylib'. Symbols loaded.
Loaded '/System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth'. Symbols loaded.
Loaded '/System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory'. Symbols loaded.
Loaded '/System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS'. Symbols loaded.
Loaded '/usr/lib/libutil.dylib'. Symbols loaded.
Loaded '/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio'. Symbols loaded.
Loaded '/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData'. Symbols loaded.
Loaded '/usr/lib/libmarisa.dylib'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon'. Symbols loaded.
Loaded '/usr/lib/libChineseTokenizer.dylib'. Symbols loaded.
Loaded '/usr/lib/libcmph.dylib'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling'. Symbols loaded.
 locations added to breakpoint 1
Loaded '/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji'. Symbols loaded.
Loaded '/System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement'. Symbols loaded.
Loaded '/usr/lib/libxslt.1.dylib'. Symbols loaded.
Loaded '/Users/shihuashen/x-mesh/example/bazel-out/darwin-dbg/bin/hello/main'. Symbols loaded.
Loaded '/System/Library/CoreServices/Encodings/libSimplifiedChineseConverter.dylib'. Symbols loaded.
The program '/Users/shihuashen/x-mesh/example/bazel-out/darwin-dbg/bin/hello/main' has exited with code 0 (0x00000000).
shihuashendeMacBook-Pro:hello shihuashen$ lldb main
(lldb) target create "main"
Current executable set to 'main' (x86_64).
(lldb) breakpoint set -n main
Breakpoint 1: 14 locations.
(lldb) r
Process 21174 launched: '/Users/shihuashen/x-mesh/example/bazel-out/darwin-dbg/bin/hello/main' (x86_64)
4 locations added to breakpoint 1
Process 21174 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
    frame #0: 0x0000000100002120 main`main
main`main:
->  0x100002120 <+0>:  pushq  %rbp
    0x100002121 <+1>:  movq   %rsp, %rbp
    0x100002124 <+4>:  subq   $0xc0, %rsp
    0x10000212b <+11>: movl   $0x0, -0x5c(%rbp)
Target 0: (main) stopped.
(lldb) n
Process 21174 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = instruction step over
    frame #0: 0x0000000100002121 main`main + 1
main`main:
->  0x100002121 <+1>:  movq   %rsp, %rbp
    0x100002124 <+4>:  subq   $0xc0, %rsp
    0x10000212b <+11>: movl   $0x0, -0x5c(%rbp)
    0x100002132 <+18>: movl   %edi, -0x60(%rbp)
Target 0: (main) stopped.
(lldb) n
在由vs代码启动的运行终端中,程序似乎运行良好,没有中断:

Launching: '/Users/shihuashen/x-mesh/example/bazel-out/darwin-dbg/bin/hello/main'
Working directory: '/Users/shihuashen/x-mesh/example'
1 arguments:
argv[0] = '/Users/shihuashen/x-mesh/example/bazel-out/darwin-dbg/bin/hello/main'
insufficient args, usage: /Users/shihuashen/x-mesh/example/bazel-out/darwin-dbg/bin/hello/main personNameHere
Process exited with status 0
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
我注意到bazel需要像我一样设置build-cdbg--strip=从不支持调试。 同时,我尝试在terminal中运行lldb,它似乎运行得很好。输出如下所示:

Loaded '/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib'. Symbols loaded.
Loaded '/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib'. Symbols loaded.
Loaded '/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib'. Symbols loaded.
Loaded '/usr/lib/libcups.2.dylib'. Symbols loaded.
Loaded '/System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos'. Symbols loaded.
Loaded '/System/Library/Frameworks/GSS.framework/Versions/A/GSS'. Symbols loaded.
Loaded '/usr/lib/libresolv.9.dylib'. Symbols loaded.
Loaded '/usr/lib/libiconv.2.dylib'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal'. Symbols loaded.
Loaded '/usr/lib/libheimdal-asn1.dylib'. Symbols loaded.
Loaded '/System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth'. Symbols loaded.
Loaded '/System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory'. Symbols loaded.
Loaded '/System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS'. Symbols loaded.
Loaded '/usr/lib/libutil.dylib'. Symbols loaded.
Loaded '/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio'. Symbols loaded.
Loaded '/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData'. Symbols loaded.
Loaded '/usr/lib/libmarisa.dylib'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon'. Symbols loaded.
Loaded '/usr/lib/libChineseTokenizer.dylib'. Symbols loaded.
Loaded '/usr/lib/libcmph.dylib'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling'. Symbols loaded.
 locations added to breakpoint 1
Loaded '/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji'. Symbols loaded.
Loaded '/System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement'. Symbols loaded.
Loaded '/System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement'. Symbols loaded.
Loaded '/usr/lib/libxslt.1.dylib'. Symbols loaded.
Loaded '/Users/shihuashen/x-mesh/example/bazel-out/darwin-dbg/bin/hello/main'. Symbols loaded.
Loaded '/System/Library/CoreServices/Encodings/libSimplifiedChineseConverter.dylib'. Symbols loaded.
The program '/Users/shihuashen/x-mesh/example/bazel-out/darwin-dbg/bin/hello/main' has exited with code 0 (0x00000000).
shihuashendeMacBook-Pro:hello shihuashen$ lldb main
(lldb) target create "main"
Current executable set to 'main' (x86_64).
(lldb) breakpoint set -n main
Breakpoint 1: 14 locations.
(lldb) r
Process 21174 launched: '/Users/shihuashen/x-mesh/example/bazel-out/darwin-dbg/bin/hello/main' (x86_64)
4 locations added to breakpoint 1
Process 21174 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
    frame #0: 0x0000000100002120 main`main
main`main:
->  0x100002120 <+0>:  pushq  %rbp
    0x100002121 <+1>:  movq   %rsp, %rbp
    0x100002124 <+4>:  subq   $0xc0, %rsp
    0x10000212b <+11>: movl   $0x0, -0x5c(%rbp)
Target 0: (main) stopped.
(lldb) n
Process 21174 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = instruction step over
    frame #0: 0x0000000100002121 main`main + 1
main`main:
->  0x100002121 <+1>:  movq   %rsp, %rbp
    0x100002124 <+4>:  subq   $0xc0, %rsp
    0x10000212b <+11>: movl   $0x0, -0x5c(%rbp)
    0x100002132 <+18>: movl   %edi, -0x60(%rbp)
Target 0: (main) stopped.
(lldb) n
ShihuashendeMacBookPro:hello shihuashen$lldb main
(lldb)目标创建“主”
当前可执行文件设置为“main”(x86_64)。
(lldb)断点集-n main
断点1:14个位置。
(lldb)r
启动21174进程:'/Users/shihuashen/x-mesh/example/bazel out/darwin dbg/bin/hello/main'(x86_64)
4个位置添加到断点1
进程21174已停止
*线程#1,队列='com.apple.main thread',停止原因=断点1.1
帧#0:0x0000000100002120 main`main
main`main:
->0x10000120:pushq%rbp
0x10000211:movq%rsp,%rbp
0x10000124:subq$0xc0,%rsp
0x1000021B:movl$0x0,-0x5c(%rbp)
目标0:(主)已停止。
(lldb)n
进程21174已停止
*线程#1,队列='com.apple.main thread',停止原因=指令步过
帧#0:0x0000000100002121 main`main+1
main`main:
->0x10000211:movq%rsp,%rbp
0x10000124:subq$0xc0,%rsp
0x1000021B:movl$0x0,-0x5c(%rbp)
0x10000132:movl%edi,-0x60(%rbp)
目标0:(主)已停止。
(lldb)n
我是否犯了一些错误或滥用了bazel或vs代码? 或者任何人都可以在vscode中提供一个可以调试bazel项目的配置json?
很高兴听到专业人士的建议和评论。

您找到解决方案了吗?我现在也遇到了同样的问题。