在 Visual Studio 中使用远程 MacOS 调试功能

在 Visual Studio 中使用远程 MacOS 调试功能

作者:BlogUpdater |  时间:2022-11-04 |  浏览:132 |  评论已关闭 条评论

之前的一篇文章中,暴雪开发团队介绍了如何借助 Visual Studio 在 Linux 上调试C++ 应用程序。Microsoft Office 团队看了这篇博客文章后,他们和 C++ 团队取得了联系。他们也需要类似的工作流程,但目标操作系统是 MAC,而不是Linux。C++ 团队与Office 工程师密切合作,将相同的底层技术带到了 MAC 平台。

以下博客文章是与 Anthony Penniston 共同撰写的,他是一位与我们密切合作以提供此功能的开发工程师。谢谢你,安东尼!

开发团队简介
Anthony 的 Office 团队致力于提供核心生产力功能,例如文档存储和同步、协作、预测智能、身份验证和单点登录。由于在 Microsoft Office 上工作的性质,该团队在他们交付的产品中非常注重跨平台,也因此,他们有时候会感受到很多独特的痛苦。

具体来说,由于 Office 提供可扩展、可靠、响应迅速且跨平台的产品,因此团队必须使用多个不同的编译器和生成系统以 C++ 本机方式构建其产品,同时仍在统一代码库上运行。因此,他们所做的每个更改通常会影响多个平台上的同一产品。

Office 团队如何完成工作?
在与 C++ 团队合作开发适用于 MAC 的远程调试解决方案之前,Office 团队希望深入了解 MAC 操作系统的特定行为,但也碰到了一些挑战。他们必须尝试从源代码和日志中猜测行为,或者安装 MAC 系统并学习如何使用 XCode 调试本机代码。此外,了解特定于平台的行为最终变得更加困难,因为团队的大部分成员主要具有 Windows 方面的专业知识和经验。

这样的工作流程对于 Windows 工程师来说不切实际。结果,很多开发结点经常被推迟,MAC 特定的问题通过不太理想的解决方法和多次反复试错的猜测来解决。到目前为止,这是推进其工作的一种徒劳无益的方式。对于许多 Windows 工程师来说,他们可能只需要短暂地了解 MAC 特定行为的一次性问题,能够使用熟悉的 Windows 工具是一个巨大的好处和节省时间。

Office 团队真的希望继续在 Visual Studio 中进行开发以满足他们的所有需求,因为它具有行业标准和行业领先的工具的声誉,用于在 Windows 上开发和调试 C++ 应用程序。Visual Studio 通过一些方便的功能(如 IntelliSense、代码浏览和导航以及自动完成)帮助他们理解代码库,并快速将问题转化为答案,将想法转化为实现。

由于 Microsoft Office 团队主要在 Windows 上开发,以及其他几个平台,因此需要大量投资才能熟练掌握其他工具生态系统。能够重用他们使用 Windows 工具构建的技能并将其应用于各个平台,这对工程师来说非常有价值。因此,当 Anthony 看到 C++ 团队开发的功能允许用户在 Visual Studio 中调试 Linux 上的 C++ 代码时,他非常兴奋地与团队联系并了解有关此功能如何适应 MAC 的更多信息。

对远程 MAC 开发的支持
Anthony 向 C++ 团队提出他的请求后,C++ 工程师就能够与 Office 团队互动和协作,以生成一个原型,以满足他在 Visual Studio 中进行远程 MAC 开发的需求。这在几周内就完成了。由于 C++ 团队能够快速响应此请求,因此在为期一周的黑客马拉松结束时,他们已经能够向 Office 团队演示并提高对这一新产品工作的认识。

在演示中,他们能够吸引许多其他 Office 工程师接受这个想法,这些工程师渴望看到更多,因此在这一年中,C++ 团队继续与 Office 团队合作,进一步将体验完善为 Visual Studio 2022 中 LLDB 的开箱即用的远程调试功能, 这不仅满足了团队的所有技术要求,并解决了所有给出的反馈,而且对于不熟悉工作流程的工程师来说也很容易入门。

在这次经历之后,我们与安东尼进行了交谈,他说:“看到一个雄心勃勃的想法变成现实是一次引人入胜且充满活力的经历。此外,Anthony 指出,“[对我来说最突出的是]VS 团队的参与度、响应能力和对用户反馈的关注,以改进和迭代设计。VS 团队在 VS 2022 中准备好了完善的功能,我们所有的要求都已到位,并与我们进行了检查,以确保我们的用例被覆盖,我们的开发道路顺利且畅通无阻”

这个概念不仅改善了他们的特定工作流程,还将改善其他人的工作流程。Office 工程团队最初对 MAC 上的跨平台开发有一些担忧,特别是担心遇到 MAC 系统特定的故障或行为,因为这意味着要么通过猜测进行开发,要么投入大量时间来设置 MAC 系统和学习工具集,这通常是一次性资源投入。但是,现在,借助 VS 2022 针对 MAC 的远程调试功能,再加上能够在 Office 中轻松配置 MAC 系统,工程团队感到有能力使用他们已经熟悉和熟悉的 VS 工具链进行特定于平台的开发中。

结论
特别感谢 Erika Sweet、Paul Maybee、Sinem Akinci、Ion Todirel 以及 Visual Studio C++ 团队的其他成员,他们在几个月到一年的时间里帮助 Office 团队实现了跨平台的理想工作流程。Office 团队带着非常积极的体验离开,并希望将来有更多的合作(并期待很快利用同样的 VS 技术来调试 Windows 上的 MAC 核心转储)。

总结
对于一个 Windows 程序员,在产品订立之初,就需要好好问自己一个问题:
“我的产品,是否需要跨平台?为什么需要跨平台?”
如果确定有跨平台的需求,就需要对开发框架慎重选择了。

最后
Microsoft Visual C++团队的博客是我非常喜欢的博客之一,里面有很多关于Visual C++的知识和最新开发进展。大浪淘沙,如果你对Visual C++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。
本文来自:《Microsoft Office team uses Remote MacOS Debugging Capability in Visual Studio》

最近我写了个东西
正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。

标签:

评论已关闭。