我正在调试一个有两个运行实例的Windows服务,通过附加到这两个实例来进行调试。我这样做是因为我知道只有一个实例会触发我的断点,但我想知道是哪个实例,以便将来不必再附加到两个实例。
当附加到多个进程时,是否有一种方法可以告诉您哪个进程触发了断点?试错的解决方案是逐个附加并查看是否触发了断点,或者停止其中一个服务(通过Services.msc)并查看哪个进程ID消失,但我认为这两种解决方案都不可扩展。是否有更优雅的方法?
我正在调试一个有两个运行实例的Windows服务,通过附加到这两个实例来进行调试。我这样做是因为我知道只有一个实例会触发我的断点,但我想知道是哪个实例,以便将来不必再附加到两个实例。
当附加到多个进程时,是否有一种方法可以告诉您哪个进程触发了断点?试错的解决方案是逐个附加并查看是否触发了断点,或者停止其中一个服务(通过Services.msc)并查看哪个进程ID消失,但我认为这两种解决方案都不可扩展。是否有更优雅的方法?
System.Diagnostics.Process.GetCurrentProcess().Id
这将为您提供您所附加的进程的PID(进程ID)。 您可以在Windows任务管理器中查找pid(菜单“视图”->选择列并选中PID)。
希望这有所帮助。
$ADDRESS-当前指令
$CALLER-前一个函数名称
$CALLSTACK-调用堆栈
$FUNCTION-当前函数名称
$PID-进程ID
$PNAME-进程名称
$TID-线程ID
$TNAME-线程名称
http://msdn.microsoft.com/en-us/library/232dxah7(v=vs.110).aspx