V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  swananan  ›  全部回复第 7 页 / 共 14 页
回复总数  267
1  2  3  4  5  6  7  8  9  10 ... 14  
2025 年 10 月 15 日
回复了 red13 创建的主题 程序员 你们撸代码还在 debug 调试吗?
对了,推荐下我的这个刚启动的项目,自由的给线上服务打印日志: https://github.com/swananan/ghostscope
2025 年 10 月 15 日
回复了 red13 创建的主题 程序员 你们撸代码还在 debug 调试吗?
2025 年 10 月 15 日
回复了 findstrx 创建的主题 Claude 我又发现了一个 claude code 的新用处-生成文档
给了
2025 年 10 月 15 日
回复了 findstrx 创建的主题 Claude 我又发现了一个 claude code 的新用处-生成文档
网络库加 lua 协程,我喜欢
@zzz22333 欢迎欢迎,我挺喜欢 cgdb 模式切换,以及源码上直接加断点的(虽然这么一说,平平无奇的样子),但是 vim 风格操作我非常喜欢
@buleLi 是的,如果在热点路径加,性能影响会比较大,本质上这个开销比起代码中打印日志,还多了上下文切换。不过,调试排查问题,不太应该在热点路径狂加日志(至少加点过滤条件)。后续优化的话,比较倾向于接入 bpftime ,来避免上下文切换的开销。
@bv 感谢提醒,我说为啥 workflows 一直没跑,我以为是需要充钱,哈哈,我晚上回去处理一下。
我第一次发布工具类的项目,我本意是想尽量支持更多的系统版本,所以我选了 Ubuntu 20.04 来进行构建。
现在的话,我是通过 docker 来构建的(还是基于 Ubuntu 20.04 ),然后构建的二进制 tar 包在 Release 页面里面。
@faketemp
问题 1:这是个很好的问题哈,我这边做个回答(晚上我整理一下,给放到项目 QA 文档里面)。
a. bpftrace 在最近的版本变动里面去掉了对 DWARF 也就是调试信息的支持( https://github.com/bpftrace/bpftrace/pull/3921 )。这也是我想启动这个项目的一个原因之一。

b. bpftrace 对 DWARF 的使用,应该是局限在复杂数据结构的内存布局上面,增强对复杂数据结构的访问。但是,bpftrace 只支持了函数入口和函数返回这种 hook 点,没有完全利用 DWARF 的能力。比如说,某一行源码对应的指令,被探测程序执行到这个指令时候,局部变量,全局变量,参数究竟在内存的哪里。这些是需要根据 DWARF 里面的表达式进行实时求值,才能获取到的。这意味着 bpftrace 其实无法具备类似于 GDB 那样基于 DWARF 提供完整的用户态探测调试的能力。 (我对 bpftrace 代码了解的很粗浅,只是以前快速翻了一下,有错误随时指正哈)

c. ghostscope 参考 GDB 对 DWARF 的处理,并且把 DWARF 表达式实时生成 LLVM IR ,然后通过 LLVM 生成 eBPF 字节码。这样的话,理论上 ghostscope 是可以根据 DWARF 描述的信息,在用户关注的指令流程上,抓取正确的二进制数据,并且正确的根据 DWARF 信息展示出二进制数据对应源代码的样子。当然,因为 ghostscope 底层依赖的是 eBPF + uprobe ,而不是像 GDB 那样使用 ptrace ,所以不能提供交互式 debug 的体验,但是不影响进程服务运行,而获取关键信息的能力,在很多时候是很有用的。

d. ghostscope 提供了我个人非常喜欢的 TUI 使用方式,类似于 cgdb ,哈哈,我是真的喜欢 cgdb ,我觉得也许也会有其他人喜欢吧。

问题 2:我不太懂 Windows 系统,我甚至还没有去了解 Windows eBPF 的进展( https://github.com/microsoft/ebpf-for-windows ),也不太清楚 Windows 有没有类似 uprobe 的机制。但是我有一个想法,就是类似 bpftime 的方式,hack 进用户态进程里面,然后执行 eBPF 脚本。不晓得有没有类似的项目在做这件事情。如果我把 ghostscope 打磨稳定(支持好编译高优化程序的 DWARF 、支持栈回溯、支持 Rust 或者 C++ 的一些高级特性),我可能会开始考虑跨平台方案。我还在学习的路上,工作也不是专门做这块的,所以应该还是要踩坑和探索好久。
AMD yes 😉
2025 年 9 月 23 日
回复了 michael2016 创建的主题 程序员 面试题:业务 5XX 激增挂了,如何快速应急?
如果面试有人问我三次握手和四次挥手的问题,我会进一步讨论,为什么 TCP 在这方面设计是有问题,QUIC 的解法为什么更优秀。

https://jt26wzz.com/posts/0003-implement-quic-in-rust/
https://jt26wzz.com/posts/0008-implement-quic-in-rust/
@wingor2015 有啥推荐的吗,可能我自娱自乐都不玩 AI 相关的项目,我手头显卡还挺多的 1080 4090.
2025 年 9 月 17 日
回复了 MrRongts 创建的主题 职场话题 被 Code Review 折磨疯的组员
op 的痛点,其实需要 review 标准化,大家对好的代码要有一致的理解,不能双标。你们应该拉一个标准,不断完善,每个人都互相学到东西。
@frankkly 坐稳
@zhengfan2016 其实我现在编译的话,8700k 还蛮快的,我是在创造需求
@faywong8888 我一般是 mac 上面通过 ssh 登录机器的,本质上只是需要一台机器即可,这套配置看起来不错。
@ltkun 担心对比 8700k 升级力度不够,另外就是想买个 amd 的 cpu 玩一玩
@dji38838c 说的很有道理,不过我是韭菜,我先花花小钱,哈哈
我已经买了终身,就不参与了,很好的软件
2025 年 9 月 9 日
回复了 freefly111 创建的主题 生活 到底要不要买 Lululemon?
舒服一点,考虑性价比不太行
1  2  3  4  5  6  7  8  9  10 ... 14  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1867 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 16:03 · PVG 00:03 · LAX 08:03 · JFK 11:03
♥ Do have faith in what you're doing.