Debugger doesn't respect Signal Ignore Preferences
AaronOpfer opened this issue · 4 comments
Despite configuring preferences like so:
edb does not pass through signals to the debuggee, and instead pauses the program.
Reproduction steps:
- Attach edb to a process
- Configure edb to pass through the signal
- Send a signal that should be ignored to that process
kill -s SIGUSR1 <pid>
- Observe that edb does not ignore the signal but instead pauses the application
Fixing this may be as simple as adding return null_ptr
here:
https://github.com/eteran/edb-debugger/blob/master/plugins/DebuggerCore/unix/linux/DebuggerCore.cpp#L535
@AaronOpfer Hmm, interesting. So it seems like we are continuing the process with the appropriate signal code, but are still delivering the event to the other layers.
We'll have to make sure that the calling code is appropriately tolerant of nullptr's, but the solution may be that simple. Have you tried it at all with success?
Yes, it seems like adding that return statement fixes the problem.
Fixed pushed. I confirmed that we actually safely return nullptr
elsewhere from this function, so we can assume it is safe to do so where you recommended.