写点什么

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

  • 2020-05-21
  • 本文字数:2829 字

    阅读完需:约 9 分钟

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-05-21 14:1213540
用户头像
张卫滨 业精于勤,行成于思。

发布了 571 篇内容, 共 420.3 次阅读, 收获喜欢 756 次。

关注

评论 1 条评论

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

GreatSQL执行Update失败案例分析

GreatSQL

火山引擎携手南开大学、中国国航、协和医院,加速各行业AI能力落地

新消费日报

软件正在我们眼前悄然被侵蚀

财见

Azentio通过收购科威特公司Pysurance和iMOTOR,引领保险技术现代化

财见

2024 年 Web3 融资情况解析:公售项目占比超八成,散户抱团取暖

TechubNews

人工智能 | 大语言模型应用框架介绍

测试人

人工智能 软件测试

应用开发“取经路”,华为应用市场送出全周期服务“助攻”

脑极体

AI

生产进度拖延、成本高企,你还愿意继续忍受吗?

天津汇柏科技有限公司

低代码开发平台 软件定制开发 AI人工智能 生产管理

2023年央企安全威胁盘点

芯盾时代

身份安全 央国企数字化转型 弱口令

实践分享:借助Leangoo领歌免费敏捷工具精细化Sprint Backlog管理

顿顿顿

敏捷开发 敏捷项目管理 敏捷工具 scrum工具 敏捷迭代管理

Vision Pro开发实践

京东零售技术

Vision pro

多模态在京东内容算法上的应用

京东零售技术

算法

电商数据驱动决策:京东商品详情API返回值的力量

技术冰糖葫芦

api 网关 API Explorer API 策略 pinduoduo API

更懂消费者 火山引擎数据飞轮助力乳企做好雪糕生意

字节跳动数据平台

大数据 数据分析 数据平台 火山引擎 增长营销

零基础能做Oracle数据库之间的迁移吗?

NineData

oracle 数据迁移 Oracle ACE NineData 增量迁移

国际营销服务内容

cts喜友科技

营销 通讯 国际营销

GitHub Star 数量前 11 的开源内部工具

NocoBase

GitHub 开源 低代码 无代码 内部工具

一文把视频审核架构说得明明白白

京东零售技术

架构 视频审核

京东广告稀疏大模型训练与推理 GPU 优化实践

京东零售技术

广告 GPU算力

LED租赁屏常用于哪些场合?

Dylan

商业 活动 LED LED display LED显示屏

从申请到调用:一步一步教你使用1688商品列表数据接口

tbapi

1688API 1688商品列表数据接口

2020年最强大的远程调试工具_语言 & 开发_Anton Lawrence_InfoQ精选文章