c++ - macOS 上奇怪的 GDB 行为
问题描述
我正在尝试gdb
在 macOS 上工作。我按照此处的说明进行操作,现在不再收到有关代码签名的错误。
但是,当我尝试使用 时gdb
,我始终观察到以下行为。
- 我编译一个
hello.cpp
文件g++ -g -o hello hello.cpp
- 我
gdb
在编译文件的目录中运行。 - 我进入
file hello
提示(gdb)
。 - 我进入
break main
。 - 我进入
run
。
GDB 现在打印出来
Starting program: (CWD)/hello
[New Thread 0xXXXXX of process DDDDD]
在哪里
(CWD)
是当前工作目录(可执行文件所在的位置)
XXXXX
是一些十六进制数和
DDDDD
是另一个数字。
从这里开始,我似乎能做的就是杀死终端选项卡。我输入的任何东西都没有Ctrl-C
,Ctrl-D
似乎没有任何效果。
一些细节:
- 我
gdb
是用home-brew安装的,安装的版本是8.2.1 - 我做了
echo set startup-with-shell off >> ~/.gdbinit
- 使用内置终端或 iTerm2 时也会发生同样的情况
lldb
在同一个可执行文件上工作
你好.cpp
#include <iostream>
int main()
{
std::cout << "hello, world" << std::endl;
return 0;
}
解决方案
推荐阅读
- r - 保存数量是一个 for 循环
- docker - Docker Compose 无法进行重建
- javascript - 我应该如何构建这个 Vue 倒数计时器元素
- composer-php - 如何修复 composer 2.0.11 版本中放弃 fzaninotto/faker packagist 的错误并且我使用了 php 8.0.0?
- python - 不同熊猫数据框的两列之间的部分单词匹配
- haskell - 如何在堆栈项目中使用我自己的 Haskell 库?
- android - 按下主页按钮后处理程序向死线程发送消息
- javascript - 如何在 Javascript 函数中隐藏或散列值?
- apache-camel - 如何设置 JMSCorrelationID 并将 JMSMessageID 与 Camel 客户端和 IBMMQ 代理相关联
- excel - 使用 VBA 进行 Google 翻译 - (Excel 宏)问题