Xcode断点未解决随附的CPP文件-MACOS
xcode breakpoints not resolved with included cpp files - MacOS
update :根据杰森·莫伦达(Jason Molenda)给出的答案,我意识到设置命令根本不是问题 - 它正在正确读取,并且具有正确的值,但仍未解决断点。我将主题名称更改为更准确地适合该问题。
问题的摘要:我包括CPP文件,Xcode在使用天沟设置断点时无法解析它们,应用程序是在外部构建的(未在Xcode中开发),并且我的.lldbinit已经具有设置设置target.inline-breakpoint-策略始终设定。
上一个版本:我的问题是,我无法让Xcode的调试器在包含的.cpp文件中的断点(来自外部构建的应用程序中,只是试图将Xcode用作调试器)。
我发现答案是将以下内容添加到.lldbinit文件:
设置设置target.inline-breakpoint-strategy始终
我做到了。它似乎根本没有阅读,也不会改变任何内容。当我自己运行命令时:
命令源〜/.lldbinit
它告诉我:
-bash:设置:找不到命令
我不明白为什么它无法弄清"设置"命令。我补充说,我对该文件应该如何工作的了解很少,但是我看到在许多LLDBINIT文件中使用了此命令,没有问题。
我搜索了有关此的信息,Google无论我如何搜索,Google都没有给我一点一点。
。其他注释:
application是通过调试信息构建的。
- 为了设置Xcode,我创建了一个空项目,将一个新方案的可执行文件设置为debug debug to我构建的项目,并为代码浏览添加了代码文件夹参考。
- 我使用xcode gutter添加断点。
- 我使用MacOS 10.12 -Sierra,而不是Linux,Xcode 8.2.1。
- 如果我通过命令行运行lldb并使用以下方式设置断点:b filename.cpp:line,一切正常。即使我在手动运行时会遇到的"设置:找不到"错误,但这是正确的。但是它从未在Xcode的视觉调试器中起作用。也许我被这个错误误导了?
breakpoints在包含其他包含的基础.cpp文件中正常工作,但在任何包含的文件中都不错。
感谢您的任何帮助。
好吧,这是最近几天困扰我的问题,互联网上几乎没有任何东西那会有所帮助 - 但我终于弄清楚了!金达偶然地 - 我摆弄东西,现在出于某种完全神秘的原因有效。
这是针对Xcode 8 -Macos Sierra- 2010年中期计算机
问题:
在外部构建中,断路点适用于主CPP文件,但断点不适用于任何随附的文件-CPP文件中包含的" #include"。lldbinit设置无助于改善情况。
症状:
运行该程序,并在随附的文件中创建了一些新的断点,然后按Xcode Debugger中的暂停键。在LLDB控制台(屏幕底部)中,输入:断点列表您会看到所有破裂的断点都在其中的末尾说"位置= 0(待处理)"。如果您从主文件中添加了工作断点,则会看到它显示"位置= 1"。
解决方案:
在项目经理中,单击主要项目文件,然后单击您的目标,goto" info" - 由于我假设您能够正确构建,因此您将有通往build.sh文件的路径在构建工具框中。但是请确保目录框是空的(我的参数框也为空,但我怀疑这是相关的。)
该目录框为空,build.sh将不再工作,因为它将无法找到您的文件。要解决此问题,请像这样进行硬码:
clang++ -g -I/usr/local/include/SDL2 -lSDL2 /absolute/path/to/sdl_mygame.cpp -o /absolute/path/to/mygameexecutable
现在构建有效,神秘地,现在您的断点都起作用!
有关我的设置的其他注释:
- 我将此项目创建为外部构建
- 我创建了一个目标指向我的构建文件和未选中的"通过构建设置环境"
- 我在构建的计划中选择了这个目标。
- 我在运行中选择了我的计划中的可执行文件并检查了调试可执行
- 大多数其他Xcode设置似乎并不是必需的。
- 我正在跟随手工英雄
希望这会有所帮助!
command source ~/.lldbinit
应在LLDB内运行。您正在从外壳中运行它;该错误消息来自Bash。(" settings
"并不意味着bash)
settings set target.inline-breakpoint-strategy always
。这不是常见的,因此不是默认行为 - 它会降低调试器的性能,按照此处需要扫描每个文件。它是在https://lldb.llvm.org/troubleshooting.html的顶部进行的。大多数人不需要此设置。
我不确定XCode中的断点时,当您单击源编辑器的断点沟中时,为什么会工作。这可能是一个单独的问题。如果您启动项目并暂停,则可以做
(lldb) settings show target.inline-breakpoint-strategy
在调试器控制台窗口中,以确认它是always
,就像您想做的那样。如果您的断点不起作用,我将首先查看您的构建设置,看看您的构建设置之一是否没有生成调试信息。
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 命名空间中具有.h和.cpp文件的类
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何在cpp文件之间切换窗口?在Qt中
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 库标题在标题中不可见,但在 cmake build 下.cpp文件中完全可见.为什么?
- C++ 链接到单独的.cpp文件说"multiple definitions"
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- 包含在.cpp文件中包含在 .h 文件时包含
- C++(.cpp文件和.h文件)拆分代码并添加一个函数,提取 - 这很容易吗?
- 在头文件和 cpp 文件中使用一次 #pragma 时出现结构重定义错误
- 如何使用线程类编译 cpp 文件?
- 使用 Powershell 命令将 cpp 文件的文件夹编译为 GNU 的 g++
- 我应该将外部标头放在 .h 文件还是.cpp文件中?
- 从另一个 cpp 文件更改结构内、映射键内的变量