diff --git a/doc/man/ade-debug.1 b/doc/man/ade-debug.1 index 177b622697bb5532c4e7b8c05a69c649deda27d2..3c77e411a0a4fc400862962b4c8298af0dbad173 100644 --- a/doc/man/ade-debug.1 +++ b/doc/man/ade-debug.1 @@ -32,6 +32,12 @@ point is used when found\&. .sp .RE .PP +\fI\-\-no-interactive\fR +.RS 4 +Only start the GDB server without entering the GDB interactive mode\&. +.sp +.RE +.PP \fI\-\-device\fR .RS 4 Use device as target (e.g. user@apertis)\&. diff --git a/tools/ade b/tools/ade index 47f442815bb75856661e7ea0ce804d718f7e9d8d..bfc486528b8631ed85e2f96562f9faf1d4e8d9d3 100755 --- a/tools/ade +++ b/tools/ade @@ -218,6 +218,7 @@ class DebuggerServer: self.app = app self.args = args self.port = DEFAULT_GDBSERVER_PORT + self.host = self.target.host self._thread = None def __enter__(self): @@ -278,6 +279,7 @@ class Debugger: class Simulator: def __init__(self): + self.host = 'localhost' try: with open('/etc/image_version') as f: self.version = SysrootVersion.from_string(f.read()) @@ -527,6 +529,7 @@ class Sysroot: class SDK: def __init__(self): + self.host = 'localhost' try: with open('/etc/image_version') as f: self.version = SysrootVersion.from_string(f.read()) @@ -1056,6 +1059,7 @@ class Ade: self.force = False self.debug = False self.verbose = False + self.no_interactive = False def get_sdk(self): try: @@ -1453,8 +1457,19 @@ class Ade: self.app = project.get_main_executable() with DebuggerServer(target, self.app, *self.args) as server: - gdb = Debugger(self.unpack_sysroot(target), project) - gdb.connect(server) + if self.no_interactive: + self.info("* Gdb Server host is {0}".format(server.host)) + self.info("* Gdb Server port is {0}".format(server.port)) + self.info("* Gdb Server is ready") + if self.format == 'parseable': + print("GdbServerHost:{0}".format(server.host)) + print("GdbServerPort:{0}".format(server.port)) + print("GdbServerReady:true") + while True: + pass + else: + gdb = Debugger(self.unpack_sysroot(target), project) + gdb.connect(server) def info(self, message): if self.format == 'friendly': @@ -1575,6 +1590,7 @@ if __name__ == '__main__': # Debug parser debug_parser = subparsers.add_parser('debug', help="Debug application") debug_parser.add_argument('--app', help="Remote path to application to debug") + debug_parser.add_argument('--no-interactive', help="Don't start GDB interactive mode", action='store_true') group = debug_parser.add_mutually_exclusive_group() group.add_argument('--device', help="Use device as target (e.g. user@apertis)") debug_parser.add_argument('args', help="Arguments to pass to application", nargs=argparse.REMAINDER)