debugging 如何在Visual Studio中分辨正在调试哪个进程(附加到多个进程)?

mbyulnm0  于 2023-05-18  发布在  其他
关注(0)|答案(3)|浏览(137)

我正在调试一个Windows服务,它有两个运行的示例,通过附加到这两个示例。我这样做是因为我知道只有一个示例会命中我的断点,但我想知道是哪个示例,这样我就不必在将来附加到两个示例。
当附加到多个进程时,有没有一种方法可以告诉您哪个进程遇到了断点?一个试错的解决方案是一次附加一个并查看是否命中断点,或者停止其中一个服务(通过Services.msc)并查看哪个进程ID消失,但在我看来这两种解决方案都不具有可扩展性。有没有更优雅的方式?

lnlaulya

lnlaulya1#

您可以将监视添加到以下语句:

System.Diagnostics.Process.GetCurrentProcess().Id

这将为您提供所连接的PID(进程ID)。您可以在Windows任务管理器中查找PID(菜单视图->选择列并勾选PID)。
希望这对你有帮助

relj7zay

relj7zay2#

这就是进程窗口的作用(Debug->Windows->Processes,或者Ctrl+Alt+Z)。

whitzsjs

whitzsjs3#

您可以尝试断点上可用的“When Hit...”选项(右键单击断点,它位于弹出的上下文菜单中)。然后,您可以打印一条包含变量值沿着许多其他信息的消息,例如:
$ADDRESS -当前指令
$CALLER -上一个函数名
$CALLSTACK -调用堆栈
$FUNCTION -当前函数名

$PID -进程ID
$PNAME -进程名称

$TID -线程ID
$TNAME -线程名称
http://msdn.microsoft.com/en-us/library/232dxah7(v=vs.110).aspx

相关问题