From: Christopher Faylor Date: Thu, 30 Jan 2003 01:39:52 +0000 (+0000) Subject: * win32-nat.c (cygwin_pid): Removed as unused. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=baa93fa6f9249a1edc8c0fc10d8425ea964cb795;p=binutils-gdb.git * win32-nat.c (cygwin_pid): Removed as unused. (child_attach): Try fall back to Cygwin pid. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9a9fc9a2383..e1cd54ac38e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2003-01-29 Brian Ford + + * win32-nat.c (cygwin_pid): Removed as unused. + (child_attach): Try fall back to Cygwin pid. + 2003-01-29 Jim Blandy * objfiles.h (struct objfile): Doc fix. @@ -331,6 +336,7 @@ (_initialize_infcmd): Update help string for 'until' command. Add new 'advance' command. +>>>>>>> 1.3752 2003-01-14 David Carlton * linespec.c (decode_line_1): Normalize comments. diff --git a/gdb/win32-nat.c b/gdb/win32-nat.c index accd6847321..d6bb27ec533 100644 --- a/gdb/win32-nat.c +++ b/gdb/win32-nat.c @@ -124,7 +124,6 @@ static DEBUG_EVENT current_event; /* The current debug event from static HANDLE current_process_handle; /* Currently executing process */ static thread_info *current_thread; /* Info on currently selected thread */ static DWORD main_thread_id; /* Thread ID of the main thread */ -static pid_t cygwin_pid; /* pid of cygwin process */ /* Counts of things. */ static int exception_count = 0; @@ -383,7 +382,7 @@ static void do_child_store_inferior_registers (int r) { if (r >= 0) - deprecated_read_register_gen (r, ((char *) ¤t_thread->context) + mappings[r]); + regcache_collect (r, ((char *) ¤t_thread->context) + mappings[r]); else { for (r = 0; r < NUM_REGS; r++) @@ -850,10 +849,10 @@ display_selector (HANDLE thread, DWORD sel) int base, limit; printf_filtered ("0x%03lx: ", sel); if (!info.HighWord.Bits.Pres) - { - puts_filtered ("Segment not present\n"); - return 0; - } + { + puts_filtered ("Segment not present\n"); + return 0; + } base = (info.HighWord.Bits.BaseHi << 24) + (info.HighWord.Bits.BaseMid << 16) + info.BaseLow; @@ -862,46 +861,46 @@ display_selector (HANDLE thread, DWORD sel) limit = (limit << 12) | 0xfff; printf_filtered ("base=0x%08x limit=0x%08x", base, limit); if (info.HighWord.Bits.Default_Big) - puts_filtered(" 32-bit "); + puts_filtered(" 32-bit "); else - puts_filtered(" 16-bit "); + puts_filtered(" 16-bit "); switch ((info.HighWord.Bits.Type & 0xf) >> 1) { case 0: - puts_filtered ("Data (Read-Only, Exp-up"); - break; + puts_filtered ("Data (Read-Only, Exp-up"); + break; case 1: - puts_filtered ("Data (Read/Write, Exp-up"); - break; + puts_filtered ("Data (Read/Write, Exp-up"); + break; case 2: - puts_filtered ("Unused segment ("); - break; + puts_filtered ("Unused segment ("); + break; case 3: - puts_filtered ("Data (Read/Write, Exp-down"); - break; + puts_filtered ("Data (Read/Write, Exp-down"); + break; case 4: - puts_filtered ("Code (Exec-Only, N.Conf"); - break; + puts_filtered ("Code (Exec-Only, N.Conf"); + break; case 5: - puts_filtered ("Code (Exec/Read, N.Conf"); + puts_filtered ("Code (Exec/Read, N.Conf"); break; case 6: - puts_filtered ("Code (Exec-Only, Conf"); + puts_filtered ("Code (Exec-Only, Conf"); break; case 7: - puts_filtered ("Code (Exec/Read, Conf"); + puts_filtered ("Code (Exec/Read, Conf"); break; default: printf_filtered ("Unknown type 0x%x",info.HighWord.Bits.Type); } if ((info.HighWord.Bits.Type & 0x1) == 0) - puts_filtered(", N.Acc"); + puts_filtered(", N.Acc"); puts_filtered (")\n"); if ((info.HighWord.Bits.Type & 0x10) == 0) puts_filtered("System selector "); printf_filtered ("Priviledge level = %d. ", info.HighWord.Bits.Dpl); if (info.HighWord.Bits.Granularity) - puts_filtered ("Page granular.\n"); + puts_filtered ("Page granular.\n"); else puts_filtered ("Byte granular.\n"); return 1; @@ -926,22 +925,22 @@ display_selectors (char * args, int from_tty) puts_filtered ("Selector $cs\n"); display_selector (current_thread->h, - current_thread->context.SegCs); + current_thread->context.SegCs); puts_filtered ("Selector $ds\n"); display_selector (current_thread->h, - current_thread->context.SegDs); + current_thread->context.SegDs); puts_filtered ("Selector $es\n"); display_selector (current_thread->h, - current_thread->context.SegEs); + current_thread->context.SegEs); puts_filtered ("Selector $ss\n"); display_selector (current_thread->h, - current_thread->context.SegSs); + current_thread->context.SegSs); puts_filtered ("Selector $fs\n"); display_selector (current_thread->h, current_thread->context.SegFs); puts_filtered ("Selector $gs\n"); display_selector (current_thread->h, - current_thread->context.SegGs); + current_thread->context.SegGs); } else { @@ -1467,12 +1466,22 @@ child_attach (char *args, int from_tty) printf_unfiltered ("This can cause attach to fail on Windows NT/2K/XP\n"); } - pid = strtoul (args, 0, 0); + pid = strtoul (args, 0, 0); /* Windows pid */ + ok = DebugActiveProcess (pid); saw_create = 0; if (!ok) + { + /* Try fall back to Cygwin pid */ + pid = cygwin_internal (CW_CYGWIN_PID_TO_WINPID, pid); + + if (pid > 0) + ok = DebugActiveProcess (pid); + + if (!ok) error ("Can't attach to process."); + } if (has_detach_ability ()) { @@ -2006,11 +2015,11 @@ _initialize_win32_nat (void) add_info_alias ("sharedlibrary", "dll", 1); add_prefix_cmd ("w32", class_info, info_w32_command, - "Print information specific to Win32 debugging.", - &info_w32_cmdlist, "info w32 ", 0, &infolist); + "Print information specific to Win32 debugging.", + &info_w32_cmdlist, "info w32 ", 0, &infolist); add_cmd ("selector", class_info, display_selectors, - "Display selectors infos.", + "Display selectors infos.", &info_w32_cmdlist); add_target (&child_ops); diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index accd6847321..d6bb27ec533 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -124,7 +124,6 @@ static DEBUG_EVENT current_event; /* The current debug event from static HANDLE current_process_handle; /* Currently executing process */ static thread_info *current_thread; /* Info on currently selected thread */ static DWORD main_thread_id; /* Thread ID of the main thread */ -static pid_t cygwin_pid; /* pid of cygwin process */ /* Counts of things. */ static int exception_count = 0; @@ -383,7 +382,7 @@ static void do_child_store_inferior_registers (int r) { if (r >= 0) - deprecated_read_register_gen (r, ((char *) ¤t_thread->context) + mappings[r]); + regcache_collect (r, ((char *) ¤t_thread->context) + mappings[r]); else { for (r = 0; r < NUM_REGS; r++) @@ -850,10 +849,10 @@ display_selector (HANDLE thread, DWORD sel) int base, limit; printf_filtered ("0x%03lx: ", sel); if (!info.HighWord.Bits.Pres) - { - puts_filtered ("Segment not present\n"); - return 0; - } + { + puts_filtered ("Segment not present\n"); + return 0; + } base = (info.HighWord.Bits.BaseHi << 24) + (info.HighWord.Bits.BaseMid << 16) + info.BaseLow; @@ -862,46 +861,46 @@ display_selector (HANDLE thread, DWORD sel) limit = (limit << 12) | 0xfff; printf_filtered ("base=0x%08x limit=0x%08x", base, limit); if (info.HighWord.Bits.Default_Big) - puts_filtered(" 32-bit "); + puts_filtered(" 32-bit "); else - puts_filtered(" 16-bit "); + puts_filtered(" 16-bit "); switch ((info.HighWord.Bits.Type & 0xf) >> 1) { case 0: - puts_filtered ("Data (Read-Only, Exp-up"); - break; + puts_filtered ("Data (Read-Only, Exp-up"); + break; case 1: - puts_filtered ("Data (Read/Write, Exp-up"); - break; + puts_filtered ("Data (Read/Write, Exp-up"); + break; case 2: - puts_filtered ("Unused segment ("); - break; + puts_filtered ("Unused segment ("); + break; case 3: - puts_filtered ("Data (Read/Write, Exp-down"); - break; + puts_filtered ("Data (Read/Write, Exp-down"); + break; case 4: - puts_filtered ("Code (Exec-Only, N.Conf"); - break; + puts_filtered ("Code (Exec-Only, N.Conf"); + break; case 5: - puts_filtered ("Code (Exec/Read, N.Conf"); + puts_filtered ("Code (Exec/Read, N.Conf"); break; case 6: - puts_filtered ("Code (Exec-Only, Conf"); + puts_filtered ("Code (Exec-Only, Conf"); break; case 7: - puts_filtered ("Code (Exec/Read, Conf"); + puts_filtered ("Code (Exec/Read, Conf"); break; default: printf_filtered ("Unknown type 0x%x",info.HighWord.Bits.Type); } if ((info.HighWord.Bits.Type & 0x1) == 0) - puts_filtered(", N.Acc"); + puts_filtered(", N.Acc"); puts_filtered (")\n"); if ((info.HighWord.Bits.Type & 0x10) == 0) puts_filtered("System selector "); printf_filtered ("Priviledge level = %d. ", info.HighWord.Bits.Dpl); if (info.HighWord.Bits.Granularity) - puts_filtered ("Page granular.\n"); + puts_filtered ("Page granular.\n"); else puts_filtered ("Byte granular.\n"); return 1; @@ -926,22 +925,22 @@ display_selectors (char * args, int from_tty) puts_filtered ("Selector $cs\n"); display_selector (current_thread->h, - current_thread->context.SegCs); + current_thread->context.SegCs); puts_filtered ("Selector $ds\n"); display_selector (current_thread->h, - current_thread->context.SegDs); + current_thread->context.SegDs); puts_filtered ("Selector $es\n"); display_selector (current_thread->h, - current_thread->context.SegEs); + current_thread->context.SegEs); puts_filtered ("Selector $ss\n"); display_selector (current_thread->h, - current_thread->context.SegSs); + current_thread->context.SegSs); puts_filtered ("Selector $fs\n"); display_selector (current_thread->h, current_thread->context.SegFs); puts_filtered ("Selector $gs\n"); display_selector (current_thread->h, - current_thread->context.SegGs); + current_thread->context.SegGs); } else { @@ -1467,12 +1466,22 @@ child_attach (char *args, int from_tty) printf_unfiltered ("This can cause attach to fail on Windows NT/2K/XP\n"); } - pid = strtoul (args, 0, 0); + pid = strtoul (args, 0, 0); /* Windows pid */ + ok = DebugActiveProcess (pid); saw_create = 0; if (!ok) + { + /* Try fall back to Cygwin pid */ + pid = cygwin_internal (CW_CYGWIN_PID_TO_WINPID, pid); + + if (pid > 0) + ok = DebugActiveProcess (pid); + + if (!ok) error ("Can't attach to process."); + } if (has_detach_ability ()) { @@ -2006,11 +2015,11 @@ _initialize_win32_nat (void) add_info_alias ("sharedlibrary", "dll", 1); add_prefix_cmd ("w32", class_info, info_w32_command, - "Print information specific to Win32 debugging.", - &info_w32_cmdlist, "info w32 ", 0, &infolist); + "Print information specific to Win32 debugging.", + &info_w32_cmdlist, "info w32 ", 0, &infolist); add_cmd ("selector", class_info, display_selectors, - "Display selectors infos.", + "Display selectors infos.", &info_w32_cmdlist); add_target (&child_ops);