GMTC全球大前端技术大会(北京站)门票9折特惠截至本周五,点击立减¥480 了解详情
写点什么

2020 年最强大的远程调试工具

2020 年 5 月 21 日

2020年最强大的远程调试工具


本文最初发表于freeCodeCamp网站,经作者 Anton Lawrence 授权,由 InfoQ 中文站翻译分享。


代码调试时,工具很重要,因为某种程度上,它能决定我们是否可以快速修复代码中的问题。以前,调试颇具挑战。由于缺乏可靠的调试器,开发人员不得不使用一些特殊技巧。


例如,在调试移动应用和 Web 站点时,你需要在桌面电脑上重现问题,然后使用 Chrome 开发者工具或其他类似的工具集。但是,这些技巧并不是那么有效,你必须要在桌面浏览器和移动设备间不断切换。而今天,我们有了一个强大的工具套件,它允许我们就像运行本地应用那样在不同的设备上调试有缺陷的代码。最重要的是,这些远程调试工具不仅解决了调试方面所面临的挑战,还加强了开发团队间的协作。


1.Rookout


Rookout是一个创新性的工具,它提升了调试过程的敏捷性。它可以调试 serverless 和容器化应用中的 JVM、Node.JS 和 Python 代码。


Rookout 非常棒的一点在于它允许用户快速且安全地调试 staging 和生产环境的应用。它能够在几秒钟之内提供所有需要的数据,消除了冗长和复杂的调试过程。


Rookout 能够按需提供数据,确保了开发人员可以理解和调试代码中所存在的问题,不需要编码、重新部署和重新启动他们的应用。


借助 Rookout,我们可以远程调试实时的 Electron 应用。Rookout 的可共享接口允许开发者在棘手的 Electron 应用程序中设置不间断的断点(与常规端点类似,只不过这种端点不接触代码,能够让我们在不停止或中断应用的情况下,获取代码中的数据)。


借助该工具,我们可以完整地看到应用的性能,这样就可以跟踪问题并开发对应的修复程序。Rookout 能够让这一切变成现实,而且不需要在终端用户上安装任何额外的软件。


亮点

  • 易于上手起步;

  • 与 Git 无缝集成;

  • 支持与一系列工具的集成,如 Slack、Datadog、Sentry、Sumologic 等;

  • 交互跟踪和屏幕共享功能;

  • 实时提供全面的调试数据。


2.Visual Studio Code


Visual Studio Code始终是每个使用.NET 开发人员的首选。它有大量的特性来实现本地和远程调试。借助该工具,我们可以设置条件端点和日志点。


它还允许我们探查变量。对于远程调试,我们需要安装VS code远程开发扩展包。这个包有三个扩展,它们提供了启动、监控和加速远程调试循环的所有内容。


亮点

  • 免费试用,跨平台;

  • 有微软支持的高度活跃的开发社区;

  • 集成了 Git 版本控制;

  • 用来实现工作流增强的大量扩展和定制选项;

  • 非常棒的自动化代码检查和代码颜色高亮。


3.RubyMine

RubyMine是一个强大的、智能的跨平台 IDE,它允许我们调试 Ruby on Rails、CoffeeScript、JavaScript、CSS、ERB 和 HAML 等,其优秀的内置调试器允许我们轻松地设置断点和定义命中条件。



JetBrains 的 RubyMine 提供了两种方式来调试在远程设备上运行的应用。首先,你可以添加远程Ruby解释器并配置本地和远程项目文件的映射,然后启动调试会话。


或者,你也可以在远程设备上运行应用,然后添加 Ruby 解释器。


完成之后,配置文件之间的映射并绑定到运行中的进程上。在调试无法在 IDE 直接启动的应用时,这一点尤为重要。


这个工具另外很棒的一点在于它允许我们同时启动多个调试进程。



亮点

  • RubyMine 基于强大的 intelliJ IDEA 平台;

  • 对 Ruby 相关的框架和技术提供了良好的支持;

  • 自动完成特性非常棒;

  • 与 Git 集成地非常好;

  • 支持多个插件;

  • 与 Rails 无缝集成。


4.PyCharm


PyCharm是 JetBrains 为 Python 开发的一个健壮的 IDE。这个智能的代码编辑器提供了远程开发的功能,包括在虚拟机和远程主机上运行、测试、调试和部署应用的能力。


调试器提供了多种断点、帧视图、监视、步进模式、远程解释器以及一个调试控制台。



PyCharm 提供了很多令人惊叹的特性,包括复杂场景的自动完成、优秀的重构支持以及与其他工具的无缝集成,如 Django、IPython、Docker、Vagrant 和 Pytest。


除此之外,PyCharm 还是一个非常棒的跨平台开发工具。除了 Python,它还支持 JavaScript、Cython、CoffeeScript、TypeScript、SQL、HTML/CSS、Node.js、AngularJS 等。


亮点

  • 出色在 IDE 中连接多数据库进行查询的功能;

  • 搜索和安装包非常容易;

  • 自动化的代码生成;

  • Git 可视化;

  • 动态展示代码错误,使其易于修复。


5.GDB

GDB 可以高效地调试另外一台机器上的程序。为了进行远程调试,我们需要在宿主机上运行 GDB 工具。另外,需要在目标系统上运行 gdbserver,这样两个工具就可以通过网络或者 GDB 远程序列化协议的 serial line 进行通信。


GDB/gdbserver 的远程调试有两个配置选项。首先,涉及到使用远程 GDB 自动构建并上传应用代码到远程机器。


第二个选项是在应该使用可执行文件的地方,使用 GDB 的远程调试功能。



亮点

  • 易于使用和跟踪代码中的错误;

  • 跨平台并提供了广泛的语言支持;

  • 高效的核心 dump 分析。


6.Eclipse

Eclipse 是一个适用于 Java 开发的知名 IDE,同时还支持 Python、Ruby、C#和 PHP 等语言。Eclipse IDE 具有开发和调试的高级特性,使其成为一个全面的工具。


Eclipse 最令人印象深刻的特性之一就是平台的调试视图,它能够展现详细的调试信息,如断点、变量、调用栈以及线程。


借助 Eclipse,我们可以单步执行程序、挂起和恢复线程、计算表达式以及探查表达式的值。在 Eclipse 上管理远程调试配置非常简单直接,这使得该工具在开发者中更受欢迎。



亮点

  • 自动化的代码完成;

  • 对重构的良好支持;

  • 优秀的导航功能;

  • 有助于进行语法检查,实现整洁和高效的代码;

  • Git 集成。


7.Zend Studio 调试器


Zend Studio是一个专业的 IDE,支持 PHP 代码的编辑、测试、调试等功能。


它与Zend Server进行了紧密的集成,因此创建了一个完整的 PHP 环境,可以更容易地分析在 staging 和生产环境中探测到的问题。


Zend 还提供了一个 PHP 扩展,用户可以将其安装到 Web 服务器上以调试 PHP 脚本。使用 Zend 进行调试非常容易,你只需要打开源码、在项目中设置断点并运行调试会话即可。



Zend 上的远程调试可以通过三种方式实现。第一个方案是使用 Zend Studio 上的 Debug URL 功能。


其次,你可以使用 Zend Studio 中的 Debug as Web Page 功能。最后,还可以使用 Firefox 或 Chrome 上的 Zend 浏览器工具栏。


亮点

  • 能够通过简单的几个按键筛选项目文件;

  • 高效、快速的平台;

  • 广大的社区支持;

  • 非常适合构建和调试 PHP 应用;

  • 该框架非常灵活。


8.WinPdb


WinPdb是一个非常棒的 Python 调试器,能够很好地在 Windows、Mac OS 和 Linux 系统上运行。它同时兼容 Python 2.x 和 Python 3.x。


这个调试工具支持智能断点、命名空间修改、多线程、嵌入式调试以及加密通信。对于远程调试功能来讲,我们需要将 rpdb2.py(Winpdb 的命令行调试器)复制到远程机器上。


完成之后,使用调试器在远程机器启动 Python 脚本。在本地机器上,启动 GUI 并关联要调试的脚本。此时,我们可以使用远程设备脚本的基础名称或完整路径。关于使用 WinPDB 调试 Python 脚本的更多知识,可以参考该教程


亮点

  • 支持多线程调试;

  • 支持远程调试的加密通信;

  • 比 PDB 更快;

  • 易于使用的 GUI,支持断点、栈、变量探测等功能。


英文原文:


Top Remote Debugging Tools in 2020


2020 年 5 月 21 日 14:1211620
用户头像
张卫滨 业精于勤,行成于思。

发布了 379 篇内容, 共 218.2 次阅读, 收获喜欢 324 次。

关注

评论 1 条评论

发布
用户头像
可以可以,以后可以尝试一下
2020 年 05 月 22 日 00:10
回复
没有更多了
发现更多内容

技术干货 | 六分钟学会使用 HBuilder 引入构建 mPaaS 小程序

蚂蚁集团移动开发平台 mPaaS

小程序 uni-app mPaaS

令数字起舞,让自然微笑:TECH4ALL的2020启示录

脑极体

RPC Demo(二) 基于 Zookeeper 的服务发现

Java zookeeper RPC 服务发现

差距不止一点点!Github星标51K的性能优化文档也太香了

程序员小毕

Java 程序员 性能优化 JVM 设计模式

Flink Forward Asia 2020 -- Keynote 总结

Apache Flink

flink

华为云·云享专家李万龙: IoT 梦想,从0到1的实现

华为云开发者社区

技术 物联网 IoT

爆赞!P8架构师总结29篇多线程与高并发+设计模式核心笔记

Java架构追梦

Java 学习 架构 面试 多线程高并发

写出一手烂代码的19条准则

Java架构师迁哥

程序员:我非常熟练多线程!面试官:你熟悉个屁!

Java成神之路

Java 程序员 架构 面试 编程语言

华为18级大牛手撸七百多页MySQL数据库性能调优、架构设计手册!

Java成神之路

Java 程序员 架构 面试 编程语言

Rust布道者张汉东倾授,入门Rust初学者都要攻破哪些难点?

华为云开发者社区

学习 rust 语言

Linux基本操作命令

行者AI

Linux

北京一咖啡店启动数字人民币应用场景测试 店员:目前处于内测阶段

CECBC区块链专委会

数字人民币

云挖矿APP系统开发|云挖矿软件开发

开發I852946OIIO

系统开发

架构师训练营大作业

Gosling

架构师训练营第 1 期

爆赞!GitHub上收获Star数排名前10的Java项目爆赞!

Java成神之路

Java 程序员 架构 面试 编程语言

第一张区块链完税证明在深圳开出,区块链政务应用再获突破

CECBC区块链专委会

区块链 电子证明

百度京Fun生活节 双旦福利HIGH 翻全城

DT极客

IPFS分布式存储矿机系统APP软件开发

开發I852946OIIO

系统开发

软件测试——网络协议知识(二)

测试人生路

软件测试 网络通信协议

近些年有哪些口碑炸裂的项目管理工具?各具特色的项目管理工具我们该如何选择?

PingCode

项目管理 程序人生

破除数据垄断,数据上链或是关键

CECBC区块链专委会

区块链 大数据

Java中的常量

cdhqyj

Java

ClickHouse利器—如何提高留存计算速度

行者AI

数据库

仅4步,就可通过SQL进行分布式死锁的检测与消除

华为云开发者社区

数据库 sql 死锁

LeetCode题解:239. 滑动窗口最大值,二叉堆,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

跨年巨作!13万字!腾讯高工纯手写“JDK源码笔记”直接带你飙向实战

比伯

Java 编程 架构 面试 计算机

重新发现科技与人文的互动

脑极体

如何使用mock应对测试所需随机数据

华为云开发者社区

测试 数据 Mock

实用流程工具,浅析LR.NET配置型工作流引擎

雯雯写代码

.net 工作流

架构师 3 期 3 班 -week6- 作业

zbest

作业 week6

2020年最强大的远程调试工具-InfoQ