public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Joel Brobecker <brobecker@adacore.com>
To: gdb-patches@sourceware.org
Subject: Re: [vxworks 05/14] Add options to control Vxworks related settings.
Date: Tue, 04 May 2010 15:25:00 -0000	[thread overview]
Message-ID: <20100504152522.GH2768@adacore.com> (raw)
In-Reply-To: <1272210447-13895-6-git-send-email-brobecker@adacore.com>

[-- Attachment #1: Type: text/plain, Size: 270 bytes --]

Hello,

> 2010-04-23  Joel Brobecker  <brobecker@adacore.com>
> 
>         * remote-wtx-opt.h, remote-wtx-opt.c: New files.

Attached is a new version of this file, following the removal of
ATTR_FORMAT... (a very minimal change compared to the first version).

-- 
Joel

[-- Attachment #2: 0005-vxworks-add-options-to-control-Vxworks-related-set.patch --]
[-- Type: text/x-diff, Size: 13456 bytes --]

2010-04-23  Joel Brobecker  <brobecker@adacore.com>

        * remote-wtx-opt.h, remote-wtx-opt.c: New files.
---
 gdb/remote-wtx-opt.c |  323 ++++++++++++++++++++++++++++++++++++++++++++++++++
 gdb/remote-wtx-opt.h |   46 +++++++
 2 files changed, 369 insertions(+), 0 deletions(-)
 create mode 100644 gdb/remote-wtx-opt.c
 create mode 100644 gdb/remote-wtx-opt.h

diff --git a/gdb/remote-wtx-opt.c b/gdb/remote-wtx-opt.c
new file mode 100644
index 0000000..70910b6
--- /dev/null
+++ b/gdb/remote-wtx-opt.c
@@ -0,0 +1,323 @@
+/* Support for the WTX protocol.
+
+   This unit provides a user interface to various settings which are
+   related to the WTX protocol.  We also provide several debug switches
+   that the user can use to turn on some debugging traces.
+
+   Copyright (C) 2007, 2010 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "defs.h"
+#include "command.h"
+#include "gdbcmd.h"
+#include "remote-wtx-opt.h"
+#include "remote-wtxapi.h"
+
+/* The various settings that affect the the WTX protocol will be
+   accessible through the "set/show wtx" command prefix.  The following
+   cmd_list_element variables contain the list of commands accessible
+   under that prefix.  */
+
+static struct cmd_list_element *set_wtx_list = NULL;
+static struct cmd_list_element *show_wtx_list = NULL;
+
+/* The various debug switches are accessible through the "set/show wtx
+   debug" command prefix.  The following cmd_list_element variables
+   contain the list of commands accessible under that prefix.  */
+
+static struct cmd_list_element *set_wtx_debug_list = NULL;
+static struct cmd_list_element *show_wtx_debug_list = NULL;
+
+/* The name we use to identify ourselves when we connect to
+   the target server.  The default value is allocated during
+   this file initialization phase.  */
+static char *tool_name = NULL;
+
+/* The module load timeout in seconds.  */
+static int load_timeout = 30;
+
+/* The stack size in bytes used when spawning a new process.  */
+static int stack_size = 0x10000;
+
+/* The options used when spawning a new process.  */
+static int task_options = 0;
+
+/* The priority used when spawning a new process.  */
+static int task_priority = 100;
+
+/* Set to non-zero to print debug traces of the events received by GDB.  */
+static int debug_events_level = 0;
+
+/* Set to non-zero to print debug traces related to watchpoint support.  */
+static int debug_watchpoints = 0;
+
+/* Set to non-zero to print debug traces of the operations involving
+   objfile manipuations.  */
+static int debug_objfiles = 0;
+
+/* If set to non-zero, then the user wants to see more verbose error
+   messages when the TCL interpreter failed to evaluate a command.  */
+static int debug_tcl = 0;
+
+/* Accessor for TOOL_NAME.  */
+
+char *
+wtx_opt_tool_name (void)
+{
+  return tool_name;
+}
+
+/* Accessor for LOAD_TIMEOUT.  */
+
+int
+wtx_opt_load_timeout (void)
+{
+  return load_timeout;
+}
+
+int
+wtx_opt_stack_size (void)
+{
+  return stack_size;
+}
+
+int
+wtx_opt_task_options (void)
+{
+  return task_options;
+}
+
+/* Init task options using the target information.  */
+
+void
+wtx_opt_init_task_options (void)
+{
+  const int VX_FP_TASK = wtxapi_vx_fp_task ();
+  const int VX_SPE_TASK = 0x04000000;
+
+  /* If the target has a floating-point processor, then set the
+     floating-point option flag.  */
+  if (wtxapi_target_has_fpp_get ())
+    task_options |= VX_FP_TASK;
+
+  /* If the target is e500v2, the SPE APU should be enabled to run
+     floating point programs.
+     
+     FIXME: guitton/2009-07-20: In VxWorks 6.6, there is no way to
+     discriminate between e500 and e500v2: both have the same cpu
+     variant "ppc85XX".  As we only support e500v2, it is fine to
+     assume that PPC85XX actually means e500v2...  For now.  But
+     it is not in the general case.  The problem is fixed in Vxworks
+     6.7, so we may get rid of this kludge at some point.  */
+  if (wtxapi_has_target_variant ("_e500v2")
+      || wtxapi_has_target_variant ("_ppc85XX"))
+    task_options |= VX_SPE_TASK;
+}
+
+int
+wtx_opt_task_priority (void)
+{
+  return task_priority;
+}
+
+/* Accessor for DEBUG_TCL  */
+
+int
+wtx_opt_tcl_verbose_p (void)
+{
+  return debug_tcl;
+}
+
+/* Print a debug message if DEBUG_OBJFILES is non-zero.
+   The message uses the string FORMAT and all the associated parameters, 
+   following the printf syntax.  */
+
+void
+wtx_opt_objfiles_debug (const char *format, ...)
+{
+  if (debug_objfiles)
+    {
+      va_list args;
+
+      va_start (args, format);
+      printf_filtered ("DEBUG (objfiles): ");
+      vprintf_filtered (format, args);
+      printf_filtered ("\n");
+      va_end (args);
+    }
+}
+
+/* Print a debug message if DEBUG_EVENTS is non-zero.
+   The message uses the string FORMAT and all the associated parameters, 
+   following the printf syntax.  */
+
+void
+wtx_opt_events_debug (int level, const char *format, ...)
+{
+  if (debug_events_level >= level)
+    {
+      va_list args;
+
+      va_start (args, format);
+      printf_filtered ("DEBUG (events): ");
+      vprintf_filtered (format, args);
+      printf_filtered ("\n");
+      va_end (args);
+    }
+}
+
+void wtx_opt_watchpoints_debug (const char *format, ...)
+{
+  if (debug_watchpoints)
+    {
+      va_list args;
+
+      va_start (args, format);
+      printf_filtered ("DEBUG (watchpoints): ");
+      vprintf_filtered (format, args);
+      printf_filtered ("\n");
+      va_end (args);
+    }
+}
+
+/* Implement the "set wtx" command.
+   This is not actually a valid command, so inform the user of that fact,
+   and print the list of valid subcommands to help him.  */
+
+static void
+set_wtx_command (char *args, int from_tty)
+{
+  printf_filtered (_("\"set wtx\" must be followed by a subcommand.\n"));
+  help_list (set_wtx_list, "set wtx ", -1, gdb_stdout);
+}
+
+/* Implement the "show wtx" command: Print the value of all settings
+   available through that command prefix.  */
+
+static void
+show_wtx_command (char *args, int from_tty)
+{
+  cmd_show_list (show_wtx_list, from_tty, "");
+}
+
+/* Implement the "set wtx debug" command.
+   This is not actually a valid command, so inform the user of that fact,
+   and print the list of valid subcommands to help him.  */
+
+static void
+set_wtx_debug_command (char *args, int from_tty)
+{
+  printf_filtered (_("\"set wtx debug\" must be followed by a subcommand.\n"));
+  help_list (set_wtx_debug_list, "set wtx debug", -1, gdb_stdout);
+}
+
+/* Implement the "show wtx" command: Print the value of all settings
+   available through that command prefix.  */
+
+static void
+show_wtx_debug_command (char *args, int from_tty)
+{
+  cmd_show_list (show_wtx_debug_list, from_tty, "");
+}
+
+void
+_initialize_remote_wtx_opt (void)
+{
+  tool_name = xstrdup ("gdb");
+
+  /* Various "set/show" switches.  */
+  add_prefix_cmd ("wtx", no_class, set_wtx_command, _("\
+Adjust various settings specific to the WTX protocol."), &set_wtx_list,
+                  "set wtx ", 0 /* allow_unknown */, &setlist);
+  add_prefix_cmd ("wtx", no_class, show_wtx_command, _("\
+Print various settings specific to the WTX protocol."), &show_wtx_list,
+                  "show wtx ", 0 /* allow_unknown */, &showlist);
+
+  add_setshow_string_noescape_cmd ("tool-name", class_support,
+                                   &tool_name, _("\
+Set the tool name used when connecting to the target server."), _("\
+Show the tool name used when connecting to the target server."), NULL,
+                                   NULL, NULL,
+                                   &set_wtx_list, &show_wtx_list);
+
+  add_setshow_integer_cmd ("load-timeout", class_support,
+                           &load_timeout, _("\
+Set the timeout in seconds when loading new modules on the target."), _("\
+Show the timeout in seconds when loading new modules on the target."), _("\
+Use this setting to adjust the maximum duration that loading a module\n\
+on the target can take before a timeout aborts the operation."),
+                           NULL, NULL, &set_wtx_list, &show_wtx_list);
+
+  add_setshow_zinteger_cmd ("stack-size", class_support,
+                           &stack_size, _("\
+Set the stack size in bytes for tasks spawned by the debugger."), _("\
+Show the stack size in bytes for tasks spawned by the debugger.."), _("\
+Use this setting to adjust the stack size of new tasks."),
+                           NULL, NULL, &set_wtx_list, &show_wtx_list);
+
+  add_setshow_zinteger_cmd ("task-options", class_support,
+                           &task_options, _("\
+Set the options of new tasks spawned by the debugger."), _("\
+Show the options of new tasks spawned by the debugger.."), _("\
+Use this setting to change the options used when spawning new tasks."),
+                           NULL, NULL, &set_wtx_list, &show_wtx_list);
+
+  add_setshow_zinteger_cmd ("task-priority", class_support,
+                           &task_priority, _("\
+Set the priority of new tasks spawned by the debugger."), _("\
+Show the priority of new tasks spawned by the debugger.."), _("\
+Use this setting to change the priority used when spawning new tasks."),
+                           NULL, NULL, &set_wtx_list, &show_wtx_list);
+
+  /* Various debug switches for WTX.  */
+  add_prefix_cmd ("debug", no_class, set_wtx_debug_command, _("\
+Adjust various settings specific to the WTX protocol."), &set_wtx_debug_list,
+                  "set wtx debug ", 0 /* allow_unknown */, &set_wtx_list);
+  add_prefix_cmd ("debug", no_class, show_wtx_debug_command, _("\
+Print various settings specific to the WTX protocol."), &show_wtx_debug_list,
+                  "show wtx debug ", 0 /* allow_unknown */, &show_wtx_list);
+
+  add_setshow_zinteger_cmd ("events", class_maintenance,
+                            &debug_events_level, _("\
+Print debug traces related to WTX event handling."), _("\
+Debug traces related to WTX event handling."),
+                            NULL, NULL, NULL, &set_wtx_debug_list,
+                            &show_wtx_debug_list);
+
+  add_setshow_boolean_cmd ("objfiles", class_maintenance,
+                           &debug_objfiles, _("\
+Print debug traces related to objfile handling for WTX."), _("\
+Debug traces related to objfile handling for WTX."),
+                           NULL, NULL, NULL, &set_wtx_debug_list,
+                           &show_wtx_debug_list);
+
+  add_setshow_boolean_cmd ("watchpoints", class_maintenance,
+                           &debug_watchpoints, _("\
+Print debug traces related to WTX watchpoint handling."), _("\
+Debug traces related to WTX watchpoint handling."),
+                           NULL, NULL, NULL, &set_wtx_debug_list,
+                           &show_wtx_debug_list);
+
+  add_setshow_boolean_cmd ("tcl", class_maintenance,
+                           &debug_tcl, _("\
+Set the verbosity of the error messages from the TCL interpreter."), _("\
+Show the verbosity of the error messages from the TCL interpreter."), _("\
+When set, the TCL interpreter prints more verbose error messages"),
+                           NULL, NULL,
+                           &set_wtx_debug_list, &show_wtx_debug_list);
+
+}
diff --git a/gdb/remote-wtx-opt.h b/gdb/remote-wtx-opt.h
new file mode 100644
index 0000000..eff67d4
--- /dev/null
+++ b/gdb/remote-wtx-opt.h
@@ -0,0 +1,46 @@
+/* Copyright (C) 2007, 2010 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef REMOTE_WTX_OPT_H
+#define REMOTE_WTX_OPT_H
+
+char *wtx_opt_tool_name (void);
+
+int wtx_opt_load_timeout (void);
+
+int wtx_opt_stack_size (void);
+
+int wtx_opt_task_options (void);
+
+void wtx_opt_init_task_options (void);
+
+int wtx_opt_task_priority (void);
+
+int wtx_opt_tcl_verbose_p (void);
+
+/* Support for debugging traces.  */
+
+void wtx_opt_objfiles_debug (const char *format, ...)
+  ATTRIBUTE_PRINTF (1, 2);
+
+void wtx_opt_events_debug (int level, const char *format, ...)
+  ATTRIBUTE_PRINTF (2, 3);
+
+void wtx_opt_watchpoints_debug (const char *format, ...)
+  ATTRIBUTE_PRINTF (1, 2);
+
+#endif
-- 
1.5.4.3


  reply	other threads:[~2010-05-04 15:25 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-25 15:47 Adding support for VxWorks target Joel Brobecker
2010-04-25 15:47 ` [vxworks 01/14] Some ada-lang/ada-tasks routines needed by the " Joel Brobecker
2010-04-25 15:48 ` [vxworks 13/14] Add tdep files for x86 and powerpc Joel Brobecker
2010-04-25 20:45   ` Mark Kettenis
2010-04-26 16:41     ` Joel Brobecker
2010-04-25 15:48 ` [vxworks 11/14] WTX-TCL support module Joel Brobecker
2010-04-25 15:48 ` [vxworks 08/14] Partition support Joel Brobecker
2010-04-25 15:48 ` [vxworks 09/14] remote-wtx-hw / register fetch/store support Joel Brobecker
2010-04-25 15:48 ` [vxworks 10/14] Add new "wtx" target Joel Brobecker
2010-04-25 15:48 ` [vxworks 03/14] New module remote-wtx-utils Joel Brobecker
2010-04-26 18:55   ` Tom Tromey
2010-04-27 16:27     ` Joel Brobecker
2010-04-25 15:48 ` [vxworks 02/14] New command_post observer Joel Brobecker
2010-04-26 18:51   ` Tom Tromey
2010-04-27 14:22     ` Joel Brobecker
2010-04-27 17:16       ` Tom Tromey
2010-04-25 15:48 ` [vxworks 14/14] Configury and Makefile updates for VxWorks Joel Brobecker
2010-04-25 15:56 ` [vxworks 12/14] Add support for VxWorks 6 Joel Brobecker
2010-04-25 15:56 ` [vxworks 06/14] VxWorks breakpoint-handling module Joel Brobecker
2010-04-25 15:56 ` [vxworks 05/14] Add options to control Vxworks related settings Joel Brobecker
2010-05-04 15:25   ` Joel Brobecker [this message]
2010-04-25 15:56 ` [vxworks 07/14] "multi-tasks-mode" support Joel Brobecker
2010-04-25 16:01 ` [vxworks 04/14] remote-wtxapi: The WTX API abstraction layer Joel Brobecker
2010-05-04 14:58 ` Adding support for VxWorks target Joel Brobecker
2010-05-04 15:43   ` Stan Shebs
2010-05-04 18:30     ` one big unit or several smaller units? (was: "Re: Adding support for VxWorks target") Joel Brobecker
2010-11-25  0:53 ` Adding support for VxWorks target Joel Brobecker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100504152522.GH2768@adacore.com \
    --to=brobecker@adacore.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).