求一个可以把程序流程复现的工具 - V2EX
请不要在回答技术问题时复制粘贴 AI 生成的内容
cs5117155

求一个可以把程序流程复现的工具

  •  
  •   cs5117155 Sep 20, 2021 4101 views
    This topic created in 1700 days ago, the information mentioned may be changed or developed.

    有时候我需要把现在的 bug 复现出来,但是鉴于要通过第三方 api 联动才跑完整个流程,单纯通过日志与 sql 日志进行推断问题所有,会占用很多时间。能否有一个工具,可以把当时的程序流程可以通过像电影这样回放,那么能定位到问题就会非常的快了

    16 replies    2021-09-23 12:59:47 +08:00
    lizheming
        1
    lizheming  
       Sep 20, 2021
    Suinn
        2
    Suinn  
       Sep 20, 2021
    还有这种好东西吗,插个眼
    1vonzhang
        3
    1vonzhang  
       Sep 20, 2021
    概念:Reverse debugging, 参考 https://undo.io/resources/reverse-debugging-whitepaper/

    工具:
    C/C++: rr https://rr-project.org/
    Python: RevPDB, timetravelpdb
    learningman
        4
    learningman  
       Sep 20, 2021 via Android
    要用第三方的话,mock?
    abc11
        5
    abc11  
       Sep 20, 2021
    Rx.NET in Action 》讲过一个鼠标画线的案例,可以参考一下
    shyrock
        6
    shyrock  
       Sep 20, 2021
    感觉能大幅提升 debug 效率,然而看了一下 py 的几个实现,都是 15 、16 年就停止了。。。

    另外,看了一下这几个实现的能力,还是在于比较容易复现的 bug,通过更少的调试迭代定位到问题。
    但是,lz 的问题,或者说我们更痛苦的问题,是不易复现的 bug,比如在业务环境出现了偶发问题,在调试环境很难复现,这个似乎还是无解。
    akira
        7
    akira  
       Sep 20, 2021
    即使不涉及到 3 方, 要复现 “当时的程序流程” 也是个很困难的事情
    ClericPy
        8
    ClericPy  
       Sep 20, 2021
    不限语言??? 那只好招个 QA 了...
    LifStge
        9
    LifStge  
       Sep 20, 2021
    这种东西吧 我感觉最终还是 log 不过是把 log 更细化 比如自动化的 hook 打点记录 然后就是对记录的结构化 流程化 分组啥的 最终缺少的还是针对性的自动化工具..
    fuse
        10
    fuse  
       Sep 20, 2021
    问这个问题, 计算机还没学好
    这个其实就是个信息论问题, 程序执行所有信息, 难道所有信息都能记下来?
    每 s 100w 次系统调用, 每次参数, 返回值都能记下来?
    每次调用, 每个分支都记? 那存储比 cpu 还快

    其实嘛? 只能记重要的部分, 比如 log

    所以只能是 log, 或者加一些函数的 trace
    Feiex
        11
    Feiex  
       Sep 20, 2021
    @fuse 他这个是关联数据比较多,制造复现 bug 的场景比较麻烦。有些企业有流量录制和回放工具,支持线上采样线下回放,可以解决他这种问题
    xzysaber
        12
    xzysaber  
       Sep 21, 2021
    是指流量复制吗?
    https://github.com/buger/goreplay
    YsHaNg
        13
    YsHaNg  
       Sep 22, 2021
    windbg 可以 time travel debug
    fengjianxinghun
        14
    fengjianxinghun  
       Sep 22, 2021
    @fuse 能,qemu tcg replay 整个虚拟机指令执行。
    RexG
        15
    RexG  
       Sep 22, 2021
    也不说啥语言,前端可以用这个 https://github.com/rrweb-io/rrweb
    sbilly
        16
    sbilly  
       Sep 23, 2021


    “人不能两次踏进同一条河流”
    科:宇宙射线触发了路由器 BUG
    https://news.mydrivers.com/1/501/501000.htm
    About     Help     Advertise     Blog     API     FAQ     Solana     2553 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 92ms UTC 16:04 PVG 00:04 LAX 09:04 JFK 12:04
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86