【发布时间】:2018-10-11 21:38:24
【问题描述】:
我最近一直在 Mac 上使用 gdb,但有时断点是错误的,因此如果我分配断点并运行 gdb 有时会跳过断点或在错误的行上中断。谁能帮我吗?我试图找到以下问题的最简单情况。:
Project
|
+-- CMakeLists.txt
|
+-- include
| |
| +-- A.hpp
|
+-- src
|
+-- main.cpp
A.hpp
#pragma once
class A {
public:
A(const char* t){};
};
main.cpp
1 #include<string>
2 #include"A.hpp"
3 int main(){
4 std::string s = "";
5 A a = "";
6 return 0;
7 }
CMakeLists.txt
1 cmake_minimum_required (VERSION 3.0)
2
3
4 file(GLOB SOURCES "src/*.cpp")
5 set(CMAKE_BUILD_TYPE Debug)
6
7 add_executable(main ${SOURCES})
8
9 target_include_directories(main PUBLIC include)
如果我尝试在分配字符串的 main.cpp 第 4 行设置断点并在 gdb 中运行 main,它会在第 5 行停止。 我认为当使用标准标题时会发生这种情况。如果我将第 4 行更改为像 int i = 0; 这样的简单赋值,断点会按预期在第 4 行停止。
我有:
Mac 版 High Sierra 10.13.6
CMakeVersion:3.12.0
GDB 版本:8.0.1(通过自制软件安装)
提前感谢您的帮助。
【问题讨论】:
-
将尝试重现,但没有 Mac。你用的是什么版本的clang?
-
@Mark Plotnick:Apple LLVM 版本 10.0.0 (clang-1000.10.44.2) 目标:x86_64-apple-darwin17.7.0 线程模型:posix
标签: c++ macos debugging gdb macos-high-sierra