聊一个最近在做的 post-mortem debugging tool 吧

gaogaotiantian:

Post-mortem debugging 一直是一个很有趣的方向,它可以很大程度上解决 bug 不复现或者难复现的问题。一个很常见的例子是,在 CI 上一个 test fail 了,但是本地怎么跑都没问题,就很痛苦。logging 这个事情永远没有一个正确的量,少了信息不够,多了信息找不到。我们期待的是可以“重建”这个测试挂掉时候的状态(当然更理想的是把整个程序的运行过程重建,那是个更大的话题了)。

我在这个领域做了不少尝试,然后最近做出来一个自己还比较满意的东西,coredumpy

https://github.com/gaogaotiantian/coredumpy

这是个解决 python 的 post-mortem debugging 的工具。它的核心点其实就是一个,可以对程序当前运行状态做一个 snapshot ,然后保存 dump ,在进程结束后用这个 dump 文件去重建。

这个概念本身并不算新,在一些 native 语言里是存在的。python 这边也有人做过一些尝试,但是效果都不好。一个核心原因就是 Python 对象之间的引用关系比较复杂,不太好重建。而之前大量的尝试基本都是基于 pickle 的,pickle 有几个核心问题导致它上不了 production:

  • 最重要的,有些 object 是没法 pickle 的,而 pickle 是不支持 partial pickle 的,直接导致你项目里有一个东西没法 pickle 就 dump 不出来东西
  • pickle 有安全问题,这是 by design 的,没法避免
  • pickle 面对一些 recursion 很重的 structure 的时候可能直接爆栈
  • pickle 在还原数据的时候,是需求同样的环境的,这就减弱了“拿个 dump 直接看”的能力

所以 coredumpy 是完全抛弃了 pickle ,用另一种方式来试图解决这个问题——我可以没办法重建全部数据,但是我一定要能 dump 出来,并且保留更多的信息。

demo

拿到这个 dump 之后,可以用 vscode 直接打开(会调用 vscode 自身的 debugger ),也可以用 pdb 打开。同时还做了个 github actions ,可以在 github actions 里直接产生一个 vscode link ,然后直接复制到浏览器就可以在 vscode 打开这个 dump 了,连手动下载都不需要。

项目本身还在做,感兴趣的小伙伴可以试一下,如果有反馈也可以直接在 github 提 issue~

Read More

[亞洲無碼] 【某某门事件】广西桂林大一班花被男同学迷晕后肆意玩弄![116/MP4/220MB]

【影片格式】:MP4
【影片大小】:220.91M
【影片时间】:00:11:29

【下载地址】:
https://www.116pan.com/viewfile.php?file_id=295332

2025年3月最新【抖音福利】河南小网红人妻【红姐就是我】,大奶粉穴,线下和榜一大哥约炮自拍,两瓣小阴唇微张求插入
【影片大小】:28MB
【影片时间】:00:02:22
【影片说明】:无码
【影片截图】:


【下载地址】:
https://www.116pan.com/viewfile.php?file_id=295949

Read More

凌晨快速遍地是挂怎么办

10个人的游戏9个是挂,还不只是一把两把的事,看完回放自己都笑出声了[s:ac:哭笑]
打完一把看回放确认,然后再一个一个举报太花费时间了,问下有没有什么快速批量举报的办法?
不然这环境下迟早把正常玩家都全部劝退[s:ac:擦汗]

Read More

[杂谈]托比昂这英雄真的是c位莫姨吧

碰到好多个那种托比昂了,不管进攻防守,一整局就选个托比昂,打死不换。打架就是丢个炮台然后开始站着抽奖或者敲炮台,炮台掉了后本体的作用为0。一看数据,输出比另一个c都高,击杀却只有个位数,整局下来就感觉没什么存在感[s:ac:晕]你让他换吧,就是我输出高凭什么换,真的很难评[s:ac:呆]
叠个甲,不是指所有的托比昂玩家,仅针对我说的这种情况。

Read More