macOS 15.6 ARM golang debug 问题

 前言

最近使用macmini m4在使用golang debug发现一些奇怪的问题,debug到c代码,莫名其妙,而且不知道什么原因,知道搜索查询,才发现是苹果的Command Line Tools 的锅,macOS 15果然是一堆bug,毕竟笔者前面还写了Chrome本地网络访问的bug,系统真是一言难尽啊。

bug

macOS 15.6

Command Line Tools 不知道什么版本,反正是最新版,是系统自动更新的,问题刚好就出在这

问题:

  1. go的main 方法执行debug调试,所有断点都到:asm_arn64.s@runtime·systemstack_switch。这都c代码了,但是console打印日志却能正确显示,且不调试却看不出任何问题
  2. 调试协程代码断点直接: proc.go@gopark() ,其实导致调试功能完全无法使用。

笔者在网上搜索发现goland出现过这种问题,直到jetbrains看到bug,但是因为是苹果开发工具bug,所以只能苹果修复,或者用低版本的开发工具解决。

解决办法

参考:https://youtrack.jetbrains.com/issue/GO-18407/After-upgrading-my-Mac-to-macOS-15.4-the-debugging-feature-in-GoLand-2024.3.5-no-longer-works-as-expected.-The-debugger-always

据说macOS15.4开始就。。。

解决办法是手动下载Command Line Tools 16.2版本安装

实际上就是执行

sudo rm -rf /Library/Developer/CommandLineTools

然后去:Command Line Tools for Xcode 16.2

下载xcode工具包,手动安装,然后千万别在系统更新中,自动更新了

验证:安装后不需要重启任何软件即可生效

总结

苹果的硬件其实非常好,做工和质量都不错,但是软件真是一言难尽,尤其是开发工具macOS一言难尽啊,这种致命的bug,从macOS15.4到现在都没修复,还有Chrome那个本地网络,这都是开发者的噩梦。

顺便分享怎么解决go delve debug时版本太旧的问题,常见于旧版本的IDE不兼容新版本的go语言的debug调试工具。

version of Delve is too old for Go version 1.25.0 (maximum supported version 1.24)

以笔者Fleet为例,在console日志可以找到Fleet的dlv路径

/Users/huahua/Library/Caches/JetBrains/Fleet/intellij-plugin-2/fleet-backend-252.16528.tar.zst_47bfeabd36fe55589b53edbb31628c1f/FleetBackend 2025.2 EAP.app/Contents/plugins/go-plugin/lib/dlv/mac

然后执行:

go install github.com/go-delve/delve/cmd/dlv@latest

在用户目录的go/bin 下复制dlv文件替换idea的dlv文件即可解决问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/95098.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有个需求:切换车队身份实现Fragment的Tab隐藏显示(车队不显示奖赏)

核心实现: 1使用mmkv保存切换的身份 2借助eventbus实现通知Fragment的tab更新private void switchFleet(boolean isMore, EnterpriseInfo enterpriseInfo) {if (isMore) {tvSwitchFleetTitle.setText(getText(R.string.switch_to_other_accounts));} else {tvSwitch…

在 Android Studio 中修改 APK 启动图标(2025826)

在 Android Studio 中修改 Android 12 应用图标可以按照以下步骤进行:1、准备图标资源准备一个启动图标(建议使用 SVG 格式或高分辨率 PNG,推荐尺寸为 512x512 像素)图标应符合 Android 12 的设计规范(自适应图标&…

Linux三剑客grep-sed-awk

linux三剑客-grep、sed、awk 文章目录linux三剑客-grep、sed、awk1.正则表达式1.1正则表达式?1.2应用场景?-谁可以用?1.3正则注意事项(避免90%以上的坑)1.4正则符号1.5正则VS通配符2.基础正则2.1 ^ 以...开头的行2.2 $…

给某个conda环境安装CUDA 12.4版本 全局CUDA不变

文章目录🎯 正确的安装命令📋 为什么这个命令安全?⚠️ 重要说明🔧 安装后环境配置方法一:在虚拟环境中设置方法二:使用conda环境变量🧪 验证安装📊 版本共存确认💡 额外…

【C++】日期类实现详解:代码解析与复用优化

代码总览与总结// 实现一个完善的日期类 class Date { public:int GetMonthDay(int year, int month){int monthDays[13] { 0,31,28,31,30,31,30,31,31,30,31,30,31 };// 闰年2月if (month 2 && ((year % 4 0 && year % 100 ! 0) || year % 400 0))return …

零基础json入门教程(基于vscode的json配置文件)

一、什么是 JSON?—— 最核心的概念JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,长得像键值对的集合,用途是存储和传递数据。在 VS Code 中,它常被用来写配置文件(比如调试配置…

深入对比分析SpringCloud和Dubbo两大微服务框架的核心架构与特性。

1 微服务架构演进与核心概念1.1 微服务架构的本质微服务架构是一种将单一应用程序划分为一组小型服务的方法,每个服务运行在自己的进程中,服务之间通过轻量级的通信机制进行协作。这些服务围绕业务能力构建,并能够独立部署到生产环境中。微服…

鸿蒙ArkTS 核心篇-14-条件表达式(三目运算符)

目录 根据逻辑条件结果,执行不同的表达式,得到不同结果 DevEco Studio代码实战 ctrl s 日志输出 总结 根据逻辑条件结果,执行不同的表达式,得到不同结果 DevEco Studio代码实战 let num1: number 100 let num2: number 20l…

CDH集成LDAP进行身份验证

前言:在内网环境中部署LDAP并在CDH的hive和impala中集成,其中配置的端口,镜像名,密码等需要根据自己情况进行更改 1、镜像下载 在有网络的服务器上下载镜像或直接下载,这里需要自行配置下docker镜像下载地址 # 下载…

并发编程:Java中的多线程与线程池!

全文目录:开篇语线程的基础概念线程生命周期线程调度线程安全线程池:Executor框架、线程池的管理与调优Executor框架线程池的管理与调优并发工具类:ReentrantLock、CountDownLatch、CyclicBarrier等ReentrantLockCountDownLatchCyclicBarrier…

语义分割一站式到底怎么玩?

语义分割模型,复现或改进、对比实验,,欢迎交流,完爆各种详细需求1、可以接以下语义分割模型dai做 DeepLabV3、PSPnet、HRnet、Segformer、Unet、u2net、cenet、erfnet、hcanet、hiformer、uiunet、nnunet、saunet、unext、dscnet、…

由于不对称GND过孔配置,差分信号过孔上的差模到共模转换

本文研究了靠近高速差分信号过孔的接地过孔的影响以及由此产生的差模到共模的转换。该工作显示了接地 (GND) 过孔和差分信号之间距离的影响 (Diff. SIG.);GND过孔不对称配置的影响;介电厚度和平面之间跃迁次数的影响。 印刷电路板…

Axios 实例配置指南

今天分享一段 Axios 实例配置的代码,用于 Web Front - End 项目的构建。 一、为什么使用 Axios 在前端项目中,与后端进行数据交互是必不可少的。Axios 是一个基于 Promise 的 HTTP 客户端,它提供了简洁的 API 和强大的功能,能够方…

分分合合,门模块方案又兴起了

文章目录前言1.方案概述1.1 功能需求1.2 框图2.供电和通信2.1 理想二极管控制器2.2 SBC2.3 高边开关3.门模块PCBA3.1 后视镜3.2 车窗和电动门4.车锁控制PCBA5.氛围灯PCBA6.未来趋势前言 最近接触了一些之前做门锁、门控、BCM的客户,发现他们或多或少都在做一些门模…

AWD相关知识

AWD AWD:Attack With Defence,即攻防对抗,比赛中每个队伍维护多台服务器(一般两三台,视小组参赛人数而定),服务器中存在多个漏洞(web层、系统层、中间件层等)&#xff0c…

基于CNN(卷积神经网络)的门牌号识别

1、官网下载SVHN数据集svhn是数据集,Dataset2、HOG特征3、支持向量机 SVM(Support Vector Machine,SVM) 分类器4、cv2需要导入 pip install opencv-python5、HOG特征提取5.1 伽马校正归一化预补偿反归一化无伽马校正有伽马校正5.2 灰度化5.3 图像梯度计…

使用LLAMA_cpp_python进行qwen2.5-vl-7b-instruct进行推理

目标:使用python的llama_cpp运行qwen2.5vl模型实现提交图片和文本回答文本效果 遇到的问题: 和提交信息的判断关键点llama.cpp 作为一个用 C/C 编写的轻量级大语言模型推理框架,让你能在各种硬件上高效运行模型。它通过降低部署和运行大模型的…

PDF,HTML,md格式文件在线查看工具

VUE3 实现了 PDF,HTML,md格式文件在线查看工具 在线体验地址: http://114.55.230.54/ 实现了一款漂亮的PDF,HTML,md格式文件在线查看网页工具 1、PDF预览1.1 实现代码 <script setup> import { ref, watch, computed } from vue// 状态管理 const files ref([]) // 存储…

CPP学习之map和set

1. 关联式容器 在之前博客中我们提到过序列式容器&#xff1a;vector, list, deque, forward_list等&#xff0c;其底层都是线性数据结构。 关联式容器存储的是键值对–<key, value>&#xff0c;与序列式容器仅存储值–key不一样&#xff0c;在数据检索时比序列式容器效…

深入理解C++中的移动赋值与拷贝赋值函数——兼论移动构造函数及其实际应用场景

技术博客&#xff1a;深入理解C中的移动赋值与拷贝赋值函数——兼论移动构造函数及其实际应用场景引言在C编程中&#xff0c;对象的赋值和构造操作是常见的需求。随着C11标准的引入&#xff0c;移动语义&#xff08;Move Semantics&#xff09;成为提升程序性能的重要手段之一。…