def debug(self, builddir, program):
try:<EOL><INDENT>signal.signal(signal.SIGINT, _ignoreSignal);<EOL>if self.getScript('<STR_LIT>') is not None:<EOL><INDENT>return self._debugWithScript(builddir, program)<EOL><DEDENT>elif '<STR_LIT>' in self.description:<EOL><INDENT>logger.warning(<EOL>'<STR_LIT>'+<EOL>'<STR_LIT>', self.getName()<EOL>)<EOL>return self._debugDeprecated(builddir, program)<EOL><DEDENT>else:<EOL><INDENT>return "<STR_LIT>" % self<EOL><DEDENT><DEDENT>finally:<EOL><INDENT>signal.signal(signal.SIGINT, signal.SIG_DFL);<EOL><DEDENT>
Launch a debugger for the specified program. Uses the `debug`
            script if specified by the target, falls back to the `debug` and
            `debugServer` commands if not. `program` is inserted into the
            $program variable in commands.