* [RFC] New info command for win32 native target
@ 2002-02-06 2:23 Pierre Muller
2002-02-06 3:24 ` Eli Zaretskii
0 siblings, 1 reply; 9+ messages in thread
From: Pierre Muller @ 2002-02-06 2:23 UTC (permalink / raw)
To: gdb-patches
This patch adds a new win32 native specific command:
"info sel"
This new info command comes in two modes:
--with an expression as argument:
(gdb) info sel exp
will parse the exp as a long value and display the
info returned by GetThreadSelectorEntry API function
--without argument
(gdb) info sel
without any argument will dispaly the info returned
for cs,ds and fs selectors.
Examples:
(gdb) inf sel
Selector 0x001b: "Cs". Execute-readable code segment.
Base address = 0x00000000. Limit = 0xffffffff.
Priviledge level = 3. Page granular.
Selector 0x0023: "Ds". Read-write data segment.
Base address = 0x00000000. Limit = 0xffffffff.
Priviledge level = 3. Page granular.
Selector 0x0038: "Fs". Read-write data segment.
Base address = 0x7ffde000. Limit = 0x00000fff.
Priviledge level = 3. Byte granular.
(gdb) inf sel 0
Selector 0x0000: "0". System selector (Not accessed) Read-only data segment.
Base address = 0x00000000. Limit = 0x00000000.
Priviledge level = 0. Byte granular.
The second example seems to indicate a Selector LDT entry that is totally zeroed.
(gdb) inf sel $fs
Selector 0x0038: "$fs". Read-write data segment.
Base address = 0x7ffde000. Limit = 0x00000fff.
Priviledge level = 3. Byte granular.
Note that the base address of both ds and cs selectors are 0.
Otherwise the ReadProcessMemory and WriteProcessMemory
functions wouldn't work correctly as the arguments should be linear addresses
(which means that the selector base should be added to the address).
This allows to find out where to look for the $fs selector stack
(for inspection of the exception chain for instance).
Note also that I had to base on the Pentium docs rather than on the API docs
to get a reasonable output (especially for the Type field of LDT_ENTRY struct).
Several things could probably be cleaner,
I am waiting for your opinions.
2002-02-06 Pierre Muller <muller@ics.u-strasbg.fr>
* win32-nat.c (display_selector): New function. Displays information
about the information returned by GetThreadSelectorEntry API function.
(display_selectors): New function. Displays the infomation of
the selector given as argument, or of CS, DS ans FS selectors
if no argument is given.
( _initialize_inftarg): Add "sel" info command, with "selector" alias.
Index: win32-nat.c
===================================================================
RCS file: /cvs/src/src/gdb/win32-nat.c,v
retrieving revision 1.47
diff -u -p -r1.47 win32-nat.c
--- win32-nat.c 2002/02/06 09:27:29 1.47
+++ win32-nat.c 2002/02/06 10:11:43
@@ -825,6 +825,93 @@ handle_output_debug_string (struct targe
return gotasig;
}
+static int
+display_selector (HANDLE thread, DWORD sel, char * name)
+{
+ LDT_ENTRY info;
+ if (GetThreadSelectorEntry (thread, sel, &info))
+ {
+ int base, limit;
+ printf ("Selector 0x%04lx: \"%s\". ", sel, name ? name : " ");
+ if ((info.HighWord.Bits.Type & 0x10) == 0)
+ printf("System selector ");
+ if ((info.HighWord.Bits.Type & 0x1) == 0)
+ printf("(Not accessed) ");
+ switch ((info.HighWord.Bits.Type & 0xf) >> 1)
+ {
+ case 0:
+ printf ("Read-only data segment.\n");
+ break;
+ case 1:
+ printf ("Read-write data segment.\n");
+ break;
+ case 2:
+ printf ("Unused segment.\n");
+ break;
+ case 3:
+ printf ("Read-write expand-down data segment.\n");
+ break;
+ case 4:
+ printf ("Execute-only code segment.\n");
+ break;
+ case 5:
+ printf ("Execute-readable code segment.\n");
+ break;
+ case 6:
+ printf ("Execute-only conforming code segment.\n");
+ break;
+ case 7:
+ printf ("Execute-readable conforming segment.\n");
+ break;
+ default:
+ printf("Unknown type 0x%x.\n",info.HighWord.Bits.Type);
+ }
+ base = (info.HighWord.Bits.BaseHi << 24) +
+ (info.HighWord.Bits.BaseMid << 16)
+ + info.BaseLow;
+ limit = (info.HighWord.Bits.LimitHi << 16) + info.LimitLow;
+ if (info.HighWord.Bits.Granularity)
+ limit = (limit << 12) | 0xfff;
+ printf ("Base address = 0x%08x. Limit = 0x%08x.\n", base, limit);
+ printf ("Priviledge level = %d. ", info.HighWord.Bits.Dpl);
+ if (info.HighWord.Bits.Granularity)
+ printf ("Page granular.\n");
+ else
+ printf ("Byte granular.\n");
+ return 1;
+ }
+ else
+ {
+ printf ("Invalid selector 0x%lx.\n",sel);
+ return 0;
+ }
+}
+
+static void
+display_selectors (char * args, int from_tty)
+{
+ if (!current_thread)
+ {
+ printf ("Impossible to display selectors now.\n");
+ return;
+ }
+ if (!args)
+ {
+ display_selector (current_thread->h,
+ current_thread->context.SegCs, "Cs");
+ display_selector (current_thread->h,
+ current_thread->context.SegDs, "Ds");
+ display_selector (current_thread->h,
+ current_thread->context.SegFs, "Fs");
+ }
+ else
+ {
+ int sel;
+ sel = parse_and_eval_long (args);
+ display_selector (current_thread->h, sel, args);
+ }
+}
+
#define DEBUG_EXCEPTION_SIMPLE(x) if (debug_exceptions) \
printf ("gdb: Target exception %s at 0x%08lx\n", x, \
(DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress)
@@ -1702,6 +1789,9 @@ _initialize_inftarg (void)
add_info ("dll", info_dll_command, "Status of loaded DLLs.");
add_info_alias ("sharedlibrary", "dll", 1);
+
+ add_info ("sel", display_selectors, "Display selectors infos.");
+ add_info_alias ("selector", "sel", 1);
add_target (&child_ops);
}
Pierre Muller
Institut Charles Sadron
6,rue Boussingault
F 67083 STRASBOURG CEDEX (France)
mailto:muller@ics.u-strasbg.fr
Phone : (33)-3-88-41-40-07 Fax : (33)-3-88-41-40-99
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [RFC] New info command for win32 native target 2002-02-06 2:23 [RFC] New info command for win32 native target Pierre Muller @ 2002-02-06 3:24 ` Eli Zaretskii 2002-02-06 3:58 ` Pierre Muller ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Eli Zaretskii @ 2002-02-06 3:24 UTC (permalink / raw) To: Pierre Muller; +Cc: gdb-patches On Wed, 6 Feb 2002, Pierre Muller wrote: > This patch adds a new win32 native specific command: > "info sel" Thanks. A couple of comments: - this command needs to be documented in gdb.texinfo, similarly to "info dos ldt" and friends (and in the same chapter, but in a different subsection); - since it's a Windows-specific command, I suggest to name it "info w32 sel" or "info windows sel" or maybe "info cygwin sel": something that will tell it's not available on every platform (actually, using ``seg'' instead of ``sel'' might probably be even better, since the information you show is about a segment whose selector is passed as an argument); - I think it's a good idea to make the format used to print the segment as similar as possible to the one used by "info dos ..." commands; - why do you only print CS, DS, and FS if no argument is given? why not all of the segment registers? I think at least SS and GS might be interesting Finally, will this work on non-x86 systems running MS-Windows (assuming Cygwin supports such systems)? The register names are x86-specific, right? ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC] New info command for win32 native target 2002-02-06 3:24 ` Eli Zaretskii @ 2002-02-06 3:58 ` Pierre Muller 2002-02-06 4:27 ` Eli Zaretskii 2002-02-06 10:00 ` Christopher Faylor 2002-02-18 6:01 ` [RFC 2nd ver] " Pierre Muller 2 siblings, 1 reply; 9+ messages in thread From: Pierre Muller @ 2002-02-06 3:58 UTC (permalink / raw) To: Eli Zaretskii; +Cc: gdb-patches At 12:22 06/02/2002 , Eli Zaretskii a écrit: >On Wed, 6 Feb 2002, Pierre Muller wrote: > > > This patch adds a new win32 native specific command: > > "info sel" > >Thanks. A couple of comments: > > - this command needs to be documented in gdb.texinfo, similarly to > "info dos ldt" and friends (and in the same chapter, but in a > different subsection); OK. > - since it's a Windows-specific command, I suggest to name it > "info w32 sel" or "info windows sel" or maybe "info cygwin sel": > something that will tell it's not available on every platform > (actually, using ``seg'' instead of ``sel'' might probably be even > better, since the information you show is about a segment whose > selector is passed as an argument); It isn't cygwin specific, so w32 or windows is probably better. > - I think it's a good idea to make the format used to print the segment > as similar as possible to the one used by "info dos ..." commands; I didn't find any command that can display individual selector info and "(gdb) inf dos ldt" gives "LDT is present (at 0xc0000), but unreadable by GDB." on my win2000 box, so I can't really try to get closer to the go32 output. Could you please send go32 specific output? > - why do you only print CS, DS, and FS if no argument is given? why not > all of the segment registers? I think at least SS and GS might be > interesting Simply because in my experience, I always saw that ds,es and ss are equal and that gs contains zero that is a special selector ment to create SIGSEGV if used. >Finally, will this work on non-x86 systems running MS-Windows (assuming >Cygwin supports such systems)? The register names are x86-specific, >right? There a lots of places in win32-nat code that are i386 specific and I don't even know if cygwin can be used to compile anything else than i386 cpus. Maybe Christopher can answer to that one. Pierre Muller Institut Charles Sadron 6,rue Boussingault F 67083 STRASBOURG CEDEX (France) mailto:muller@ics.u-strasbg.fr Phone : (33)-3-88-41-40-07 Fax : (33)-3-88-41-40-99 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC] New info command for win32 native target 2002-02-06 3:58 ` Pierre Muller @ 2002-02-06 4:27 ` Eli Zaretskii 0 siblings, 0 replies; 9+ messages in thread From: Eli Zaretskii @ 2002-02-06 4:27 UTC (permalink / raw) To: Pierre Muller; +Cc: gdb-patches On Wed, 6 Feb 2002, Pierre Muller wrote: > > - I think it's a good idea to make the format used to print the segment > > as similar as possible to the one used by "info dos ..." commands; > > I didn't find any command that can display individual selector info "info dos ldt $ds" will display the entry for DS selector's segment. It's in the manual. > and > "(gdb) inf dos ldt" gives > "LDT is present (at 0xc0000), but unreadable by GDB." > on my win2000 box Yes, all versions of Windows NT family don't let programs access the descriptor tables, even for reading. > so I can't really try to get closer to the go32 output. > Could you please send go32 specific output? There are examples in the GDB manual which show that, and the code is in go32-nat.c. If the manual examples are not enough, please ask for examples of specific commands, and I will send the output. > > - why do you only print CS, DS, and FS if no argument is given? why not > > all of the segment registers? I think at least SS and GS might be > > interesting > > Simply because in my experience, I always saw that > ds,es and ss are equal and that gs contains zero that is a special > selector ment to create SIGSEGV if used. I don't think it's a good idea to make decisions based on what you see in a normal Windows program. Some programmer could do unconventional things to segment registers, perhaps in assembly or some other way, and that's when they will need to see them. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC] New info command for win32 native target 2002-02-06 3:24 ` Eli Zaretskii 2002-02-06 3:58 ` Pierre Muller @ 2002-02-06 10:00 ` Christopher Faylor 2002-02-18 6:01 ` [RFC 2nd ver] " Pierre Muller 2 siblings, 0 replies; 9+ messages in thread From: Christopher Faylor @ 2002-02-06 10:00 UTC (permalink / raw) To: gdb-patches On Wed, Feb 06, 2002 at 01:22:55PM +0200, Eli Zaretskii wrote: > >On Wed, 6 Feb 2002, Pierre Muller wrote: > >> This patch adds a new win32 native specific command: >> "info sel" > >Thanks. A couple of comments: > > - this command needs to be documented in gdb.texinfo, similarly to > "info dos ldt" and friends (and in the same chapter, but in a > different subsection); Agree. > - since it's a Windows-specific command, I suggest to name it > "info w32 sel" or "info windows sel" or maybe "info cygwin sel": > something that will tell it's not available on every platform > (actually, using ``seg'' instead of ``sel'' might probably be even > better, since the information you show is about a segment whose > selector is passed as an argument); Agree. Probably w32 is a good choice since this could potentially work on mingw. > - I think it's a good idea to make the format used to print the segment > as similar as possible to the one used by "info dos ..." commands; Agree. If there is a similar command, it should certainly use it. > - why do you only print CS, DS, and FS if no argument is given? why not > all of the segment registers? I think at least SS and GS might be > interesting > >Finally, will this work on non-x86 systems running MS-Windows (assuming >Cygwin supports such systems)? The register names are x86-specific, >right? Cygwin only works on x86 system. That's not likely to change anytime soon. cgf ^ permalink raw reply [flat|nested] 9+ messages in thread
* [RFC 2nd ver] New info command for win32 native target 2002-02-06 3:24 ` Eli Zaretskii 2002-02-06 3:58 ` Pierre Muller 2002-02-06 10:00 ` Christopher Faylor @ 2002-02-18 6:01 ` Pierre Muller 2002-02-18 11:32 ` Eli Zaretskii 2 siblings, 1 reply; 9+ messages in thread From: Pierre Muller @ 2002-02-18 6:01 UTC (permalink / raw) To: Eli Zaretskii; +Cc: gdb-patches After the remarks from Eli and Christopher, I change my patch to try to complete their requests. At 12:22 06/02/2002 , Eli Zaretskii a écrit: >On Wed, 6 Feb 2002, Pierre Muller wrote: > > > This patch adds a new win32 native specific command: > > "info sel" > >Thanks. A couple of comments: > > - this command needs to be documented in gdb.texinfo, similarly to > "info dos ldt" and friends (and in the same chapter, but in a > different subsection); I added some very basic stuff, but I then also realized that none of the win32 specific commands are documented while quite a few are win32 specific: info dll dll-symbols set/show debugevents set/show debugexec set/show debugexception set/show debugmemory info dll I added some entries to some of these commands, but probably Christopher could do that better than I did... > - since it's a Windows-specific command, I suggest to name it > "info w32 sel" or "info windows sel" or maybe "info cygwin sel": > something that will tell it's not available on every platform > (actually, using ``seg'' instead of ``sel'' might probably be even > better, since the information you show is about a segment whose > selector is passed as an argument); I moved it to become "info w32 selector" > - I think it's a good idea to make the format used to print the segment > as similar as possible to the one used by "info dos ..." commands; I tried to make it as similar as possible. > - why do you only print CS, DS, and FS if no argument is given? why not > all of the segment registers? I think at least SS and GS might be > interesting I also changed this to simply display all 6 segment registers. <<<<Variant without argument>>>>> (top-gdb) info w32 sel Selector $cs 0x01b: base=0x00000000 limit=0xffffffff 32-bit Code (Exec/Read, N.Conf) Priviledge level = 3. Page granular. Selector $ds 0x023: base=0x00000000 limit=0xffffffff 32-bit Data (Read/Write, Exp-up) Priviledge level = 3. Page granular. Selector $es 0x023: base=0x00000000 limit=0xffffffff 32-bit Data (Read/Write, Exp-up) Priviledge level = 3. Page granular. Selector $ss 0x023: base=0x00000000 limit=0xffffffff 32-bit Data (Read/Write, Exp-up) Priviledge level = 3. Page granular. Selector $fs 0x038: base=0x7ffde000 limit=0x00000fff 32-bit Data (Read/Write, Exp-up) Priviledge level = 3. Byte granular. Selector $gs 0x000: Segment not present <<<<Variant with argument>>>>> (top-gdb) info w32 sel 0x11 Selector "0x11" 0x011: base=0x00000000 limit=0xffffffff 32-bit Data (Read/Write, Exp-up) Priviledge level = 0. Page granular. 2002-02-18 Pierre Muller <muller@ics.u-strasbg.fr> * win32-nat.c (display_selector): New function. Displays information about the information returned by GetThreadSelectorEntry API function. (display_selectors): New function. Displays the infomation of the selector given as argument, or of CS, DS ans FS selectors if no argument is given. ( _initialize_inftarg): Add "w32" as info prefix command. Add "info w32 selector" as command calling display_selectors. Index: win32-nat.c =================================================================== RCS file: /cvs/src/src/gdb/win32-nat.c,v retrieving revision 1.51 diff -b -u -p -r1.51 win32-nat.c --- win32-nat.c 2002/02/16 02:33:24 1.51 +++ win32-nat.c 2002/02/18 13:33:31 @@ -820,6 +820,126 @@ handle_output_debug_string (struct targe return gotasig; } +static int +display_selector (HANDLE thread, DWORD sel) +{ + LDT_ENTRY info; + if (GetThreadSelectorEntry (thread, sel, &info)) + { + int base, limit; + printf_filtered ("0x%03lx: ", sel); + if (!info.HighWord.Bits.Pres) + { + puts_filtered ("Segment not present\n"); + return 0; + } + base = (info.HighWord.Bits.BaseHi << 24) + + (info.HighWord.Bits.BaseMid << 16) + + info.BaseLow; + limit = (info.HighWord.Bits.LimitHi << 16) + info.LimitLow; + if (info.HighWord.Bits.Granularity) + limit = (limit << 12) | 0xfff; + printf_filtered ("base=0x%08x limit=0x%08x", base, limit); + if (info.HighWord.Bits.Default_Big) + puts_filtered(" 32-bit "); + else + puts_filtered(" 16-bit "); + switch ((info.HighWord.Bits.Type & 0xf) >> 1) + { + case 0: + puts_filtered ("Data (Read-Only, Exp-up"); + break; + case 1: + puts_filtered ("Data (Read/Write, Exp-up"); + break; + case 2: + puts_filtered ("Unused segment ("); + break; + case 3: + puts_filtered ("Data (Read/Write, Exp-down"); + break; + case 4: + puts_filtered ("Code (Exec-Only, N.Conf"); + break; + case 5: + puts_filtered ("Code (Exec/Read, N.Conf"); + break; + case 6: + puts_filtered ("Code (Exec-Only, Conf"); + break; + case 7: + 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"); + 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"); + else + puts_filtered ("Byte granular.\n"); + return 1; + } + else + { + printf_filtered ("Invalid selector 0x%lx.\n",sel); + return 0; + } +} + +static void +display_selectors (char * args, int from_tty) +{ + if (!current_thread) + { + puts_filtered ("Impossible to display selectors now.\n"); + return; + } + if (!args) + { + + puts_filtered ("Selector $cs\n"); + display_selector (current_thread->h, + current_thread->context.SegCs); + puts_filtered ("Selector $ds\n"); + display_selector (current_thread->h, + current_thread->context.SegDs); + puts_filtered ("Selector $es\n"); + display_selector (current_thread->h, + current_thread->context.SegEs); + puts_filtered ("Selector $ss\n"); + display_selector (current_thread->h, + 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); + } + else + { + int sel; + sel = parse_and_eval_long (args); + printf_filtered ("Selector \"%s\"\n",args); + display_selector (current_thread->h, sel); + } +} + +static struct cmd_list_element *info_w32_cmdlist = NULL; + +static void +info_w32_command (char *args, int from_tty) +{ + help_list (info_w32_cmdlist, "info w32 ", class_info, gdb_stdout); +} + + #define DEBUG_EXCEPTION_SIMPLE(x) if (debug_exceptions) \ printf_unfiltered ("gdb: Target exception %s at 0x%08lx\n", x, \ (DWORD) current_event.u.Exception.ExceptionRecord.ExceptionAddress) @@ -1757,6 +1877,14 @@ _initialize_inftarg (void) add_info ("dll", info_dll_command, "Status of loaded DLLs."); 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); + + add_cmd ("selector", class_info, display_selectors, + "Display selectors infos.", + &info_w32_cmdlist); add_target (&child_ops); } Index: doc/gdb.texinfo =================================================================== RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v retrieving revision 1.90 diff -b -u -p -r1.90 gdb.texinfo --- gdb.texinfo 2002/02/15 19:06:33 1.90 +++ gdb.texinfo 2002/02/18 13:33:36 @@ -10487,6 +10487,7 @@ configurations. * HP-UX:: HP-UX * SVR4 Process Information:: SVR4 process information * DJGPP Native:: Features specific to the DJGPP port +* Win32 Native:: Features specific to the Cygwin port @end menu @node HP-UX @@ -10685,6 +10686,61 @@ mapped 1:1, i.e.@: the physical and line This command is supported only with some DPMI servers. @end table +@node Win32 Native +@subsection Features for Debugging @sc{Win32} Programs +@cindex @sc{Win32} debugging +@cindex native @sc{Win32} debugging +@cindex Win32-specific commands + +@value{GDBN} supports native debugging of @sc{Win32} programs, and +defines a few commands specific to the @sc{Win32} port. This +subsection describes those commands. + +@table @code +@kindex info w32 +@item info w32 +This is a prefix of @sc{w32}-specific commands which print +information about the target system and important OS structures. + +@kindex selector +@cindex Win32 selector info +@item info w32 selector +This command displays information returned by +the Win32 API GetThreadSelectorEntry function. +It takes an optional argument that is evaluated to +a long value to give the information about this given selector. +Without argument, this command displays information +about the the six segment registers. + +@kindex new-console +@item new-console +This boolean value controls whether the debuggee should +be started in a new console or in the same console as the debugger. + +@kindex new-group +@item new-group +This boolean value controls whether the debuggee should +start a new group or stay in the same group as the debugger. +This affects the handling of certain Win32 exceptions. + +@kindex debugevents +@item debugevents +This boolean value adds debug output concerning events seen by the debugger. + +@kindex debugexec +@item debugexec +This boolean value adds debug output concerning execute events seen by the debugger. + +@kindex debugexceptions +@item debugexceptions +This boolean value adds debug ouptut concerning exception events seen by the debugger. + +@kindex debugmemory +@item debugmemory +This boolean value adds debug ouptut concerning memory events seen by the debugger. + +@end table + @node Embedded OS @section Embedded Operating Systems Pierre Muller Institut Charles Sadron 6,rue Boussingault F 67083 STRASBOURG CEDEX (France) mailto:muller@ics.u-strasbg.fr Phone : (33)-3-88-41-40-07 Fax : (33)-3-88-41-40-99 ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 2nd ver] New info command for win32 native target 2002-02-18 6:01 ` [RFC 2nd ver] " Pierre Muller @ 2002-02-18 11:32 ` Eli Zaretskii 2002-02-18 19:59 ` Christopher Faylor 0 siblings, 1 reply; 9+ messages in thread From: Eli Zaretskii @ 2002-02-18 11:32 UTC (permalink / raw) To: muller; +Cc: gdb-patches > Date: Mon, 18 Feb 2002 14:59:37 +0100 > From: Pierre Muller <muller@cerbere.u-strasbg.fr> > > After the remarks from Eli and Christopher, I > change my patch to try to complete their requests. Thanks! > +@node Win32 Native I suggest "Windows" instead of "Win32". Some people, including some that belong to The Powers That Be, don't like calling Windows ``a win'', and we don't want to rewrite large portions of the manual every time they look at our documentation ;-) > +@cindex @sc{Win32} debugging It's not recommended to use @sc on a string that involves both lower- and upper-case letters. > +@item info w32 selector > +This command displays information returned by > +the Win32 API GetThreadSelectorEntry function. The string "GetThreadSelectorEntry" is a name of a function, so it should be in @code. > +@item new-group > +This boolean value controls whether the debuggee should > +start a new group or stay in the same group as the debugger. > +This affects the handling of certain Win32 exceptions. I think this description should be expanded a bit (what exceptions? affects how?). ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 2nd ver] New info command for win32 native target 2002-02-18 11:32 ` Eli Zaretskii @ 2002-02-18 19:59 ` Christopher Faylor 2002-02-19 0:57 ` Pierre Muller 0 siblings, 1 reply; 9+ messages in thread From: Christopher Faylor @ 2002-02-18 19:59 UTC (permalink / raw) To: gdb-patches [Hmm. I never saw the original of this message] On Mon, Feb 18, 2002 at 09:29:31PM +0200, Eli Zaretskii wrote: >> Date: Mon, 18 Feb 2002 14:59:37 +0100 >> From: Pierre Muller <muller@cerbere.u-strasbg.fr> >> >> After the remarks from Eli and Christopher, I >> change my patch to try to complete their requests. > >Thanks! > >> +@node Win32 Native > >I suggest "Windows" instead of "Win32". Some people, including some >that belong to The Powers That Be, don't like calling Windows ``a >win'', and we don't want to rewrite large portions of the manual >every time they look at our documentation ;-) Actually, I think it should be called Cygwin. We don't call it "MS-DOS" immediately above. >>+@cindex @sc{Win32} debugging > >It's not recommended to use @sc on a string that involves both lower- >and upper-case letters. >> +@item info w32 selector >> +This command displays information returned by >> +the Win32 API GetThreadSelectorEntry function. > >The string "GetThreadSelectorEntry" is a name of a function, so it >should be in @code. > >> +@item new-group >> +This boolean value controls whether the debuggee should >> +start a new group or stay in the same group as the debugger. >> +This affects the handling of certain Win32 exceptions. > >I think this description should be expanded a bit (what exceptions? >affects how?). I think it basically gives the inferior process its own process group. I think that means that if gdb sees a CTRL-C, it won't be automatically passed to the inferior. FWIW, the "info dll" command is actually the same thing as "info shared", if you want to add that description, too. dll-symbols loads symbols from a dll similarly to add-sym but without the need to specify a base address. With the above changes, I think this is fine to check in. cgf ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC 2nd ver] New info command for win32 native target 2002-02-18 19:59 ` Christopher Faylor @ 2002-02-19 0:57 ` Pierre Muller 0 siblings, 0 replies; 9+ messages in thread From: Pierre Muller @ 2002-02-19 0:57 UTC (permalink / raw) To: gdb-patches At 04:59 19/02/2002 , Christopher Faylor a écrit: >[Hmm. I never saw the original of this message] >On Mon, Feb 18, 2002 at 09:29:31PM +0200, Eli Zaretskii wrote: > >> Date: Mon, 18 Feb 2002 14:59:37 +0100 > >> From: Pierre Muller <muller@cerbere.u-strasbg.fr> > >> > >> After the remarks from Eli and Christopher, I > >> change my patch to try to complete their requests. > > > >Thanks! > > > >> +@node Win32 Native > > > >I suggest "Windows" instead of "Win32". Some people, including some > >that belong to The Powers That Be, don't like calling Windows ``a > >win'', and we don't want to rewrite large portions of the manual > >every time they look at our documentation ;-) > >Actually, I think it should be called Cygwin. We don't call it "MS-DOS" immediately >above. But while the Cygwin port is compilable only with the Cygwin tools, it can debug any win32 API executable, compiled with Cygwin (i.e. using the cygwin dll) or with mingw32 (which uses msvcrt.dll) or even other compiled by commercial compilers (but it might not be able to use the debug info created by those compilers). I remember that there are some problems with PE executable that don't have .code and .data sections, but where they are called CODE and DATA. That is the reason why I didn't like to call it Cygwin, but you might be right that Iwe should call the node Cygwin native and stress inside it that it can debug any windows PE executable. > >>+@cindex @sc{Win32} debugging > > > >It's not recommended to use @sc on a string that involves both lower- > >and upper-case letters. Should I change this into @sc{win32} ? > >> +@item info w32 selector > >> +This command displays information returned by > >> +the Win32 API GetThreadSelectorEntry function. > > > >The string "GetThreadSelectorEntry" is a name of a function, so it > >should be in @code. > > > >> +@item new-group > >> +This boolean value controls whether the debuggee should > >> +start a new group or stay in the same group as the debugger. > >> +This affects the handling of certain Win32 exceptions. > > > >I think this description should be expanded a bit (what exceptions? > >affects how?). > >I think it basically gives the inferior process its own process group. >I think that means that if gdb sees a CTRL-C, it won't be automatically >passed to the inferior. > >FWIW, the "info dll" command is actually the same thing as "info >shared", if you want to add that description, too. dll-symbols loads >symbols from a dll similarly to add-sym but without the need to specify >a base address. > >With the above changes, I think this is fine to check in. I committed already the win32-nat.c code and I will resubmit the docu change. Pierre Muller Institut Charles Sadron 6,rue Boussingault F 67083 STRASBOURG CEDEX (France) mailto:muller@ics.u-strasbg.fr Phone : (33)-3-88-41-40-07 Fax : (33)-3-88-41-40-99 ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2002-02-19 8:57 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2002-02-06 2:23 [RFC] New info command for win32 native target Pierre Muller 2002-02-06 3:24 ` Eli Zaretskii 2002-02-06 3:58 ` Pierre Muller 2002-02-06 4:27 ` Eli Zaretskii 2002-02-06 10:00 ` Christopher Faylor 2002-02-18 6:01 ` [RFC 2nd ver] " Pierre Muller 2002-02-18 11:32 ` Eli Zaretskii 2002-02-18 19:59 ` Christopher Faylor 2002-02-19 0:57 ` Pierre Muller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox