mirror of
				https://github.com/go-delve/delve.git
				synced 2025-11-04 14:36:47 +08:00 
			
		
		
		
	Fixes a bug on OSX where, if the debugged process spawned a child, when that process received a SIGCHLD it would cause Delve to hang. Fixes #197
		
			
				
	
	
		
			47 lines
		
	
	
		
			849 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			849 B
		
	
	
	
		
			C
		
	
	
	
	
	
#include <sys/types.h>
 | 
						|
#include <libproc.h>
 | 
						|
#include <mach/mach.h>
 | 
						|
#include <mach/mach_vm.h>
 | 
						|
#include "mach_exc.h"
 | 
						|
#include "exc.h"
 | 
						|
 | 
						|
#ifdef	mig_external
 | 
						|
mig_external
 | 
						|
#else
 | 
						|
extern
 | 
						|
#endif	/* mig_external */
 | 
						|
boolean_t exc_server(
 | 
						|
		mach_msg_header_t *InHeadP,
 | 
						|
		mach_msg_header_t *OutHeadP);
 | 
						|
 | 
						|
#ifdef	mig_external
 | 
						|
mig_external
 | 
						|
#else
 | 
						|
extern
 | 
						|
#endif	/* mig_external */
 | 
						|
boolean_t mach_exc_server(
 | 
						|
		mach_msg_header_t *InHeadP,
 | 
						|
		mach_msg_header_t *OutHeadP);
 | 
						|
 | 
						|
kern_return_t
 | 
						|
acquire_mach_task(int, mach_port_name_t*, mach_port_t*, mach_port_t*, mach_port_t*);
 | 
						|
 | 
						|
char *
 | 
						|
find_executable(int pid);
 | 
						|
 | 
						|
kern_return_t
 | 
						|
get_threads(task_t task, void *);
 | 
						|
 | 
						|
int
 | 
						|
thread_count(task_t task);
 | 
						|
 | 
						|
mach_port_t
 | 
						|
mach_port_wait(mach_port_t);
 | 
						|
 | 
						|
kern_return_t
 | 
						|
mach_send_reply(mach_msg_header_t);
 | 
						|
 | 
						|
kern_return_t
 | 
						|
raise_exception(mach_port_t, mach_port_t, mach_port_t, exception_type_t);
 | 
						|
 |