Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [RFA] Add new cmd line parameter "--pid" for attach.
@ 2002-01-04 19:25 Michael Snyder
  2002-01-05  0:59 ` Eli Zaretskii
  2002-01-07 18:55 ` Elena Zannoni
  0 siblings, 2 replies; 29+ messages in thread
From: Michael Snyder @ 2002-01-04 19:25 UTC (permalink / raw)
  To: gdb-patches


Currently if you invoke gdb as:

	gdb filename 12345

gdb will attempt to open a corefile called "12345", and if that
fails it will print a "file not found" warning, and then attempt
to attach to a process "12345".

There is a "--core <filename>" command-line argument, 
so that you can specify a corefile without a symbol file:

	gdb --core <filename>

but there is no "--pid" option to allow you to specify
a process-id without a symbol file.

This patch does two things:

1) Add a "--pid" option to allow specification of an attach pid.

2) If the second argument (after the symbol-file) begins with
a digit, try attach first instead of trying to open it as a
corefile first.  This eliminates the "file not found" warning.

2002-01-04  Michael Snyder  <msnyder@redhat.com>

	* main.c (captured_main): Add new command line option "--pid".
	If the second command line argument (following the symbol-file)
	begins with a digit, try to attach to it before trying to open
	it as a corefile.
	(print_gdb_help): Document the "--pid" argument.

Index: main.c
===================================================================
RCS file: /cvs/src/src/gdb/main.c,v
retrieving revision 1.14
diff -c -3 -p -r1.14 main.c
*** main.c	2001/11/22 00:23:12	1.14
--- main.c	2002/01/05 03:15:43
*************** captured_main (void *data)
*** 239,244 ****
--- 239,246 ----
        {"e", required_argument, 0, 'e'},
        {"core", required_argument, 0, 'c'},
        {"c", required_argument, 0, 'c'},
+       {"pid", required_argument, 0, 'p'},
+       {"p", required_argument, 0, 'p'},
        {"command", required_argument, 0, 'x'},
        {"version", no_argument, &print_version, 1},
        {"x", required_argument, 0, 'x'},
*************** captured_main (void *data)
*** 320,325 ****
--- 322,331 ----
  	  case 'c':
  	    corearg = optarg;
  	    break;
+ 	  case 'p':
+ 	    /* "corearg" is shared by "--core" and "--pid" */
+ 	    corearg = optarg;
+ 	    break;
  	  case 'x':
  	    cmdarg[ncmd++] = optarg;
  	    if (ncmd >= cmdsize)
*************** extern int gdbtk_test (char *);
*** 463,470 ****
  	      execarg = argv[optind];
  	      break;
  	    case 2:
! 	      /* FIXME: The documentation says this can be a
! 		 "ProcID". as well.  */
  	      corearg = argv[optind];
  	      break;
  	    case 3:
--- 469,476 ----
  	      execarg = argv[optind];
  	      break;
  	    case 2:
! 	      /* The documentation says this can be a "ProcID" as well. 
! 	         We will try it as both a corefile and a pid.  */
  	      corearg = argv[optind];
  	      break;
  	    case 3:
*************** extern int gdbtk_test (char *);
*** 586,597 ****
  
    if (corearg != NULL)
      {
!       if (catch_command_errors (core_file_command, corearg, !batch, RETURN_MASK_ALL) == 0)
  	{
! 	  /* See if the core file is really a PID. */
! 	  if (isdigit (corearg[0]))
! 	    catch_command_errors (attach_command, corearg, !batch, RETURN_MASK_ALL);
  	}
      }
  
    if (ttyarg != NULL)
--- 592,611 ----
  
    if (corearg != NULL)
      {
!       /* corearg may be either a corefile or a pid.
! 	 If its first character is a digit, try attach first
! 	 and then corefile.  Otherwise try corefile first. */
! 
!       if (isdigit (corearg[0]))
  	{
! 	  if (catch_command_errors (attach_command, corearg, 
! 				    !batch, RETURN_MASK_ALL) == 0)
! 	    catch_command_errors (core_file_command, corearg, 
! 				  !batch, RETURN_MASK_ALL);
  	}
+       else /* Can't be a pid, better be a corefile. */
+ 	catch_command_errors (core_file_command, corearg, 
+ 			      !batch, RETURN_MASK_ALL);
      }
  
    if (ttyarg != NULL)
*************** extern int gdbtk_test (char *);
*** 616,621 ****
--- 630,646 ----
  	catch_command_errors (source_command, gdbinit, 0, RETURN_MASK_ALL);
        }
  
+   /* These need to be set this late in the initialization to ensure that
+      they are defined for the current environment.  They define the
+      radix variables needed by a save-breakpoints file to preserve the
+      radix across the breakpoints restoration assuming they are restored
+      using the -x (-command) command line options.  */
+      
+   set_internalvar (lookup_internalvar ("input_radix"),
+ 		   value_from_longest (builtin_type_int, (LONGEST) input_radix));
+   set_internalvar (lookup_internalvar ("output_radix"),
+ 		   value_from_longest (builtin_type_int, (LONGEST) output_radix));
+ 
    for (i = 0; i < ncmd; i++)
      {
  #if 0
*************** Options:\n\n\
*** 752,757 ****
--- 777,783 ----
    --cd=DIR           Change current directory to DIR.\n\
    --command=FILE     Execute GDB commands from FILE.\n\
    --core=COREFILE    Analyze the core dump COREFILE.\n\
+   --pid=PID          Attach to running process PID.\n\
  ", stream);
    fputs_unfiltered ("\
    --dbx              DBX compatibility mode.\n\


^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2002-01-11 20:26 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-01-04 19:25 [RFA] Add new cmd line parameter "--pid" for attach Michael Snyder
2002-01-05  0:59 ` Eli Zaretskii
2002-01-05 13:12   ` Michael Snyder
2002-01-06  0:04     ` Eli Zaretskii
2002-01-06 21:26       ` Michael Snyder
2002-01-07  1:20         ` Eli Zaretskii
2002-01-07 11:07           ` Michael Snyder
2002-01-07 12:28             ` Eli Zaretskii
2002-01-07 13:39               ` Michael Snyder
2002-01-07 16:14               ` Michael Snyder
2002-01-08  0:53                 ` Eli Zaretskii
2002-01-08 15:15                   ` Michael Snyder
2002-01-07 18:55 ` Elena Zannoni
2002-01-08 15:15   ` Michael Snyder
2002-01-08 16:59     ` Andrew Cagney
2002-01-10 13:09       ` Elena Zannoni
2002-01-10 16:20         ` Andrew Cagney
2002-01-10 16:46           ` Elena Zannoni
2002-01-11  2:19             ` Richard Earnshaw
2002-01-10 17:06           ` Michael Snyder
2002-01-10 17:28             ` Andrew Cagney
2002-01-10 17:56             ` Frank Ch. Eigler
2002-01-11 12:26               ` Michael Snyder
2002-01-10 23:53             ` Eli Zaretskii
2002-01-10 13:13     ` Elena Zannoni
2002-01-10 14:49       ` Michael Snyder
2002-01-10 15:02       ` Michael Snyder
2002-01-10 23:23         ` Eli Zaretskii
2002-01-11 12:24           ` Michael Snyder

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox