In rider, how to listen debug session pause in breakpoint event

Answered

in some case, when debug unity,  rider debug session pause in breakpoint will not activate rider window, i must manually activate rider window

so I hope a way to listen debug session paused, when pause > activate rider

I know openapi has `DebugProcessListener` but in rider.jar, this class doesn't exist, how to do

0
2 comments

Hello!

Could you please attach a screenshot of menu "Help | About or JetBrains Rider | About" about OS and Rider version?

Also please clarify why do you need to use DebugProcessListener? Are you developing a plugin for RIder?

 

Kind regards,

Sofya.

0

I find the solution, in rider openapi, it's XDebugSessionListener

```

            def se = XDebuggerManagerImpl.getInstance(project).getCurrentSession()
def dispatcher = (EventDispatcher<XDebugSessionListener>) Util.getFieldVal(se, "myDispatcher")
def roIdStr = "when debug session stop in breakpoint, focus rider"
if (dispatcher.getListeners().any {
it.hasProperty("roId") && it.roId == roIdStr
}) {
} else {
def listener = new XDebugSessionListener() {
String roId

@Override
void sessionPaused() {
// super.sessionPaused()
focusProjectWindow(project)
def startAt = Time.now()
// some case, unity editor will re steal focus cause cannot focus rider, so make sure it
waitUntil(new WaitUntil() {
@Override
boolean match() {
return Time.now().minus(startAt).toSecs() > 0.5
}

@Override
boolean interruptedWhen() {
return false
}

@Override
void todo() {
focusProjectWindow(project)
}
})
}
}
listener.roId = roIdStr
se.addSessionListener(listener)
}

```

0

Please sign in to leave a comment.