From 1ab5955e3d95501ed10fe035d8409899e45c925d Mon Sep 17 00:00:00 2001 From: Riccardo Mottola Date: Tue, 3 May 2016 16:37:37 +0000 Subject: [PATCH] move interrupt method to the debugger class and add windows implementation through tskill git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/projectcenter/trunk@39714 72102866-910b-0410-8b05-ffd578937521 --- Modules/Debuggers/ProjectCenter/PCDebugger.h | 1 + Modules/Debuggers/ProjectCenter/PCDebugger.m | 22 +++++++++++++++++++ .../Debuggers/ProjectCenter/PCDebuggerView.m | 12 ---------- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/Modules/Debuggers/ProjectCenter/PCDebugger.h b/Modules/Debuggers/ProjectCenter/PCDebugger.h index 5c81f40..9e54fcf 100644 --- a/Modules/Debuggers/ProjectCenter/PCDebugger.h +++ b/Modules/Debuggers/ProjectCenter/PCDebugger.h @@ -40,5 +40,6 @@ - (NSString *) status; - (NSString *)executablePath; - (void)setExecutablePath:(NSString *)p; +- (void) interrupt; @end diff --git a/Modules/Debuggers/ProjectCenter/PCDebugger.m b/Modules/Debuggers/ProjectCenter/PCDebugger.m index 9f4894a..8b371ce 100644 --- a/Modules/Debuggers/ProjectCenter/PCDebugger.m +++ b/Modules/Debuggers/ProjectCenter/PCDebugger.m @@ -208,6 +208,28 @@ static NSImage *downImage = nil; ASSIGN(executablePath,p); } +// kill process +- (void) interrupt +{ + int pid = [debuggerView subProcessId]; + if(pid != 0) + { +#ifndef __MINGW32__ + kill(pid,SIGINT); +#else + // on windows we run tskill as a shell command + NSTask *t; + NSArray *args; + + args = [NSArray arrayWithObjects:[NSString stringWithFormat:@"%d", pid], nil]; + t = [NSTask new]; + [t setLaunchPath:@"tskill.exe"]; + [t launch]; + [t release]; +#endif + } +} + // action methods for toolbar... - (void) go: (id) sender { diff --git a/Modules/Debuggers/ProjectCenter/PCDebuggerView.m b/Modules/Debuggers/ProjectCenter/PCDebuggerView.m index 36bab70..9212b91 100644 --- a/Modules/Debuggers/ProjectCenter/PCDebuggerView.m +++ b/Modules/Debuggers/ProjectCenter/PCDebuggerView.m @@ -175,18 +175,6 @@ return subProcessId; } -- (void) interrupt -{ - int pid = [self subProcessId]; - if(pid != 0) - { -#ifndef __MINGW32__ - kill(pid,SIGINT); -#endif - } - [viewDelegate putString:@"-exec-interrupt"]; -} - - (void) terminate { [viewDelegate terminate];