Breaking single thread

后端 未结 5 1701
忘了有多久
忘了有多久 2020-12-15 18:08

Is it possible to break a single thread in Visual Studio, while other threads will continue their execution?

I have one background thread that does simple data sendi

5条回答
  •  悲&欢浪女
    2020-12-15 18:43

    Generally it's impossible, but there are some things that might work for specific scenarios.

    Basic solution As mentioned elsewhere, repeating the sequence: Freeze, Resume, (wait), Pause, Thaw, Step should result in the behavior you describe, giving other threads the possibility of running in the background while your target thread is halted.

    This approach has at least two issues:

    • It's quite tedious
    • Your background threads will be suspended anytime the debugger is paused.

    Improvements

    The first issue may be tackled using a different procedure: Issue a Thread.Sleep(10000) in the Immediate Window, effectively keeping the focused thread occupied while the other threads execute normally. You could even bind that command to a macro.

    The second issue can only be tackled by an approach that does not need to pause the debugger. But how would we examine state when the session isn't paused? That's where IntelliTrace comes in, but you may find you need to create custom IntelliTrace events. Drawback of this approach is that you can not manually modify state mid-flight.

提交回复
热议问题