From 6e7d3794c94704d71314a19457628dedb77f1eee Mon Sep 17 00:00:00 2001 From: Yuxiao Mao Date: Thu, 18 Apr 2024 15:29:19 +0200 Subject: [PATCH] Add some hack for non blocking waitpid Linux --- hldebug-wrapper/lib/linux/hldebug.node | Bin 62168 -> 61344 bytes hldebug-wrapper/src/debug.c | 12 +++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/hldebug-wrapper/lib/linux/hldebug.node b/hldebug-wrapper/lib/linux/hldebug.node index 169aae9fee5c2dbfb08d311bcf44191aaf10eebc..b71b25c5b4f13033c799930a17841a0c14ef0221 100644 GIT binary patch literal 61344 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%0DJupCs$jh>u^f@}7t`{U85tB<{`V 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 Qb9Q{j`DdAJCqkNbzuBHNWB>pF diff --git a/hldebug-wrapper/src/debug.c b/hldebug-wrapper/src/debug.c index c41cfdf..a09fa14 100644 --- a/hldebug-wrapper/src/debug.c +++ b/hldebug-wrapper/src/debug.c @@ -25,6 +25,7 @@ # include # include # include +# include # define USE_PTRACE #endif @@ -248,9 +249,18 @@ HL_API int hl_debug_wait( int pid, int *thread, int timeout ) { return mdbg_session_wait(pid, thread, timeout); # elif defined(USE_PTRACE) int status; - int ret = waitpid(pid,&status,0); + // *** HACK *** + // usleep here is needed for a good result. + // Without it, waitpid can miss many stop event; + // With it, and more we wait, less we miss stop event. + usleep(100 * 1000); + int ret = waitpid(pid, &status, WNOHANG); //printf("WAITPID=%X %X\n",ret,status); *thread = ret; + if( ret == -1 && errno != EINTR ) + return 3; + if( ret <= 0 ) + return -1; if( WIFEXITED(status) ) return 0; if( WIFSTOPPED(status) ) {