V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
tedd
V2EX  ›  JavaScript

JavaScript 估计是目前动态语言里面 debug 工具最完善了的吧?

  •  
  •   tedd · 2016-01-30 18:02:29 +08:00 · 5280 次点击
    这是一个创建于 3254 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Chrome devtool 太强大了,简直就是个 IDE 了,前段时间出了个 devtool ,直接将 chrome 用 eletron 包了下,用来 debug node.js application 简直绝了

    https://github.com/Jam3/devtool

    之前试过用 byebug gem 调试 Rails 应用,那简直是回到了过去(如果谁知道有比 byebug 更好用的麻烦告知一声~)
    26 条回复    2016-04-12 13:57:32 +08:00
    loading
        1
    loading  
       2016-01-30 18:04:04 +08:00 via Android
    有时间试下,我才刚从 alert 更新到 console.log
    est
        2
    est  
       2016-01-30 18:10:24 +08:00   ❤️ 5
    王垠:这帮进城务工者真会得瑟。
    matrix67
        3
    matrix67  
       2016-01-30 18:41:58 +08:00 via Android
    Python: 降低你 debug 的能力,提升你不 debug 的能力,呵呵。
    Wangxf
        4
    Wangxf  
       2016-01-30 18:51:41 +08:00
    vs 笑而不语
    wate
        5
    wate  
       2016-01-30 18:55:43 +08:00
    gdb 一笑而过
    wate
        6
    wate  
       2016-01-30 18:57:06 +08:00
    井底之蛤一直以为天是圆的
    ethego
        7
    ethego  
       2016-01-30 19:02:02 +08:00
    @matrix67 ipdb 支持函数变量方法属性自动补全,单步调试,堆栈跟踪,我真不清楚还有什么动态类型语言的调试工具比 python 的更方便。
    xi_lin
        8
    xi_lin  
       2016-01-30 19:05:56 +08:00
    就想问下 js 能改寄存器不~
    akagi
        9
    akagi  
       2016-01-30 21:10:46 +08:00
    @wate 动态语言啊哥
    anubiskong
        10
    anubiskong  
       2016-01-30 21:16:46 +08:00
    确实是, 我现在在 chrome 里面做游戏, 连编辑器都不用开
    ehs2013
        11
    ehs2013  
       2016-01-30 21:33:20 +08:00
    GDB/LLDB 哭晕在厕所, Visual Studio debugger :呵呵
    crysislinux
        12
    crysislinux  
       2016-01-30 22:19:01 +08:00
    感觉 js 的调试是流行的动态语言里边比较渣的了吧。。别的不说, PHP 就直接秒了它
    zhuangzhuang1988
        13
    zhuangzhuang1988  
       2016-01-30 22:23:56 +08:00
    楼主是对的。。 别的真没哪个动态语言的调试七超过 chrome dev 的。
    sodatea
        14
    sodatea  
       2016-01-30 22:35:48 +08:00   ❤️ 1
    微软已经在 ChakraCore 搞了个 Time Travel Debugger 了,准备上半年合进主干……这个才是真厉害
    https://github.com/Microsoft/ChakraCore/wiki/Roadmap#user-content-diagnostics--tooling-enhancements
    TangMonk
        15
    TangMonk  
       2016-01-31 00:16:25 +08:00
    pry_byebug
    reverland
        16
    reverland  
       2016-01-31 01:09:14 +08:00 via Android
    我觉得楼主说得挺对的。。。

    php 不清楚, ipdb 和 gdb 似乎只能作为 chrome 开发工具的一部分比较。

    感觉就是 ide 。。。
    aivier
        17
    aivier  
       2016-01-31 09:34:15 +08:00
    Anonymous function....如果 C#也算,还是 VS 好用
    techmoe
        18
    techmoe  
       2016-01-31 09:35:47 +08:00 via Android
    php 有 xdebug ,虽然我一直感觉没有 var_dump 方便,或许是我没有习惯 xdebug ?
    另外在这里问一下, xdebug 有办法在控制台 print 出信息吗?有一次在一个开了 xd 的 c9 里跑 wordpress ,数据库配置错了, wordpress 竟然拿中文在控制台里提示我数据库出错。。
    markocen
        19
    markocen  
       2016-01-31 12:33:11 +08:00
    devtool 的确很强大,但有时候用时还是会遇到 bug, 比如 DOM 层级太深无法精确定位,
    sjtlqy
        20
    sjtlqy  
       2016-01-31 16:51:30 +08:00
    lldb 一笑而过
    YuJianrong
        21
    YuJianrong  
       2016-02-01 02:00:05 +08:00
    总是说啥啥一笑而过,啥啥秒了的朋友们,你们是真的清楚 devtools 能做到什么程度吗?

    光是 aync 这一个选项,就没有多少其他 IDE 能做到(当然大部分环境都是用阻塞模式来做 IO ,也不需要这个),然后动态编辑代码热更新( vs 可以做到)、 sourcemap 对应上其他语言(当然这对于编译型语言的调试就是天生要求的)、断点状态可以执行调试代码(虽然对动态语言不少见),再加上 MS 做的 Time Travel Debugger ,现在的 JS 调试能力确实已经可以说是顶尖水平了……
    pynix
        22
    pynix  
       2016-02-01 03:56:40 +08:00
    devtool 远程调试协议
    SpicyCat
        23
    SpicyCat  
       2016-02-01 10:56:56 +08:00
    楼主明明白白说的是动态语言,楼上一帮拿静态语言说事的是几个意思?
    morethansean
        24
    morethansean  
       2016-02-01 15:25:25 +08:00
    @SpicyCat 看了标题就进来秀优越感
    sampeng
        25
    sampeng  
       2016-02-01 19:13:15 +08:00
    js 应该是 debug 效率最低的。。原因无他, js 很容易写一些技巧性的写法, debug 起来简直是花样作死。还有异步,事件混在里面。如果写过那种多条异步链相互交叉的复杂逻辑,就明白我的意思了。。这就把原先 1 个问题变成了两个问题。。。。当然,相对轻松。。谈不上牛逼的突破天际。。
    个人是特别反感把特别复杂的逻辑用 js 去写的。。暴露出源代码真的好么。。。
    weilao
        26
    weilao  
       2016-04-12 13:57:32 +08:00
    别的不说,光那堆条件断点就秒杀一大片了。
    ajax 请求断点
    dom 修改断点
    动画播放前断点,结束断点
    各种事件监听断点

    各种花式 console
    console.log
    console.warn
    console.time
    console.table
    console.profile
    ...

    远程调试
    上面这些功能都可以远程连接手机浏览器使用。。。

    更不用说变态的网络调试、性能调试、安全性调试这些我都没弄明白的东西了。。。

    说笑而不语的那几个你确定你了解过这些?
    https://developers.google.com/web/tools/chrome-devtools/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2773 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:30 · PVG 10:30 · LAX 18:30 · JFK 21:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.