Visual studio 使用'进行调试;附加到流程&x27;使用VisualStudio2010/Xcode/gdb实现魔术

Visual studio 使用'进行调试;附加到流程&x27;使用VisualStudio2010/Xcode/gdb实现魔术,visual-studio,xcode,debugging,gdb,attach-to-process,Visual Studio,Xcode,Debugging,Gdb,Attach To Process,我看到,通过“附加到进程”,可以通过在VisualStudioIDE中设置断点来调试进程 我觉得这很酷,我很好奇是什么机制使它成为可能。我还发现gdb和Mac的Xcode支持这种技术 问题1:有人能解释一下这是如何工作的吗?进程如何映射到IDE或gdb环境中的断点 问题2:除了/Zi或-g(添加调试信息)之外,还有其他编译器/调试器选项吗 这是调试dll(动态库)的方法吗 补充 我发现这是一个MSDN-我所知道的最常见的场景是使用浏览器调试web代码。在这些情况下,您可以在调试模式下启动Vi

我看到,通过“附加到进程”,可以通过在VisualStudioIDE中设置断点来调试进程

我觉得这很酷,我很好奇是什么机制使它成为可能。我还发现gdb和Mac的Xcode支持这种技术

  • 问题1:有人能解释一下这是如何工作的吗?进程如何映射到IDE或gdb环境中的断点
  • 问题2:除了/Zi或-g(添加调试信息)之外,还有其他编译器/调试器选项吗
  • 这是调试dll(动态库)的方法吗
补充
我发现这是一个MSDN-

我所知道的最常见的场景是使用浏览器调试web代码。在这些情况下,您可以在调试模式下启动Visual Studio,然后连接到浏览器并调用有问题的页面。调用页面时,它开始在调试器中运行代码。本质上,调试器监视进程,当它在VS中找到代码时,它开始调试


对于调用您在VisualStudio中运行的代码的其他应用程序也是如此。当您跨越代码边界时,调试器会捕捉到调用并开始在VS中运行代码。

在为现有应用程序(Maya、Reaper等)开发插件时,我经常使用调试器。作为一般规则,插件不能独立运行,因此为了调试它们,我必须运行主机程序并使用“附加到进程”在插件上运行调试器,在这一点上我可以设置断点和所有其他调试功能。插件需要调试符号和所有这些符号,但主机应用程序不需要调试符号。

你能详细介绍一下你想知道的吗?“它是如何工作的?”是相当模糊的。。。