gdbderver: fix gdb pipe startup overflow
authorSpencer Oliver <ntfreak@users.sourceforge.net>
Tue, 5 Oct 2010 14:00:40 +0000 (15:00 +0100)
committerSpencer Oliver <ntfreak@users.sourceforge.net>
Tue, 5 Oct 2010 14:00:40 +0000 (15:00 +0100)
When usng gdb pipes we need to keep openocd output at a minimum,
otherwise the gdb stdin will overflow and fail.
Make the calls to gdb_port and log_output synchronous to stop this.

Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
src/helper/options.c

index df4676d2e322f773826320921800b7a807d9096e..f8db2cda2618ea454f315e8a01a1a77839462da0 100644 (file)
@@ -104,13 +104,13 @@ static void add_default_dirs(void)
 
        const char *home = getenv("HOME");
 
-       if (home) 
+       if (home)
        {
                char *path;
 
                path = alloc_printf("%s/.openocd", home);
 
-               if (path) 
+               if (path)
                {
                        add_script_search_dir(path);
                        free(path);
@@ -178,8 +178,10 @@ int parse_cmdline_args(struct command_context *cmd_ctx, int argc, char *argv[])
                                }
                                break;
                        case 'p':
+                               /* to replicate the old syntax this needs to be synchronous
+                                * otherwise the gdb stdin will overflow with the warning message */
+                               command_run_line(cmd_ctx, "gdb_port pipe; log_output openocd.log");
                                LOG_WARNING("deprecated option: -p/--pipe. Use '-c \"gdb_port pipe; log_output openocd.log\"' instead.");
-                               add_config_command("gdb_port pipe; log_output openocd.log");
                                break;
                }
        }