* [PATCH 1/2] Add an undwinder_name field to "struct frame_unwind" for use by "info frame".
@ 2009-05-29 23:09 Samuel Bronson
2009-05-29 23:10 ` [PATCH 2/2] Add "set/show debug unwinder" prefix commands Samuel Bronson
2009-06-04 22:00 ` [PATCH 1/2] Add an undwinder_name field to "struct frame_unwind" for use by "info frame" Tom Tromey
0 siblings, 2 replies; 11+ messages in thread
From: Samuel Bronson @ 2009-05-29 23:09 UTC (permalink / raw)
To: gdb-patches; +Cc: Samuel Bronson
Have "info frame" display this field when present.
Fill in the field for unwinders (besides the sentinel) which are
normally built on i386 Linux.
Signed-off-by: Samuel Bronson <naesten@gmail.com>
---
gdb/dummy-frame.c | 2 ++
gdb/dwarf2-frame.c | 8 ++++++--
gdb/frame-unwind.h | 1 +
gdb/frame.c | 7 +++++++
gdb/frame.h | 3 +++
gdb/i386-tdep.c | 8 ++++++--
gdb/stack.c | 10 +++++++++-
gdb/tramp-frame.c | 1 +
8 files changed, 35 insertions(+), 5 deletions(-)
diff --git a/gdb/dummy-frame.c b/gdb/dummy-frame.c
index 6e63686..59990c1 100644
--- a/gdb/dummy-frame.c
+++ b/gdb/dummy-frame.c
@@ -278,6 +278,8 @@ static const struct frame_unwind dummy_frame_unwinder =
dummy_frame_prev_register,
NULL,
dummy_frame_sniffer,
+ NULL,
+ "dummy_frame_unwinder",
};
const struct frame_unwind *const dummy_frame_unwind = {
diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c
index ce11d89..c90bd08 100644
--- a/gdb/dwarf2-frame.c
+++ b/gdb/dwarf2-frame.c
@@ -1183,7 +1183,9 @@ static const struct frame_unwind dwarf2_frame_unwind =
dwarf2_frame_this_id,
dwarf2_frame_prev_register,
NULL,
- dwarf2_frame_sniffer
+ dwarf2_frame_sniffer,
+ NULL,
+ "dwarf2_frame_unwind",
};
static const struct frame_unwind dwarf2_signal_frame_unwind =
@@ -1192,7 +1194,9 @@ static const struct frame_unwind dwarf2_signal_frame_unwind =
dwarf2_frame_this_id,
dwarf2_frame_prev_register,
NULL,
- dwarf2_frame_sniffer
+ dwarf2_frame_sniffer,
+ NULL,
+ "dwarf2_signal_frame_unwind",
};
/* Append the DWARF-2 frame unwinders to GDBARCH's list. */
diff --git a/gdb/frame-unwind.h b/gdb/frame-unwind.h
index 35eeebf..4da7fcc 100644
--- a/gdb/frame-unwind.h
+++ b/gdb/frame-unwind.h
@@ -133,6 +133,7 @@ struct frame_unwind
const struct frame_data *unwind_data;
frame_sniffer_ftype *sniffer;
frame_dealloc_cache_ftype *dealloc_cache;
+ const char *unwinder_name;
};
/* Register a frame unwinder, _prepending_ it to the front of the
diff --git a/gdb/frame.c b/gdb/frame.c
index b0a99fb..1319f3a 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -1824,6 +1824,13 @@ frame_stop_reason_string (enum unwind_stop_reason reason)
}
}
+/* Return unwinder name */
+
+const char *get_frame_unwinder_name (struct frame_info *frame)
+{
+ return frame->unwind->unwinder_name;
+}
+
/* Clean up after a failed (wrong unwinder) attempt to unwind past
FRAME. */
diff --git a/gdb/frame.h b/gdb/frame.h
index 224aec9..b4a0871 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -422,6 +422,9 @@ enum unwind_stop_reason get_frame_unwind_stop_reason (struct frame_info *);
const char *frame_stop_reason_string (enum unwind_stop_reason);
+/* Return the name of the frame's unwinder (or NULL) */
+const char *get_frame_unwinder_name (struct frame_info *);
+
/* Unwind the stack frame so that the value of REGNUM, in the previous
(up, older) frame is returned. If VALUEP is NULL, don't
fetch/compute the value. Instead just return the location of the
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index c2515fe..bc35279 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -1467,7 +1467,9 @@ static const struct frame_unwind i386_frame_unwind =
i386_frame_this_id,
i386_frame_prev_register,
NULL,
- default_frame_sniffer
+ default_frame_sniffer,
+ NULL,
+ "i386_frame_unwind",
};
\f
@@ -1567,7 +1569,9 @@ static const struct frame_unwind i386_sigtramp_frame_unwind =
i386_sigtramp_frame_this_id,
i386_sigtramp_frame_prev_register,
NULL,
- i386_sigtramp_frame_sniffer
+ i386_sigtramp_frame_sniffer,
+ NULL,
+ "i386_sigtramp_frame_unwind",
};
\f
diff --git a/gdb/stack.c b/gdb/stack.c
index cc56125..1169d59 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -1151,7 +1151,8 @@ frame_info (char *addr_exp, int from_tty)
int count;
int i;
int need_nl = 1;
-
+ const char *unwinder;
+
/* The sp is special; what's displayed isn't the save address, but
the value of the previous frame's sp. This is a legacy thing,
at one stage the frame cached the previous frame's SP instead
@@ -1198,6 +1199,13 @@ frame_info (char *addr_exp, int from_tty)
/* else keep quiet. */
}
+ unwinder = get_frame_unwinder_name(fi);
+ if (unwinder)
+ {
+ printf_filtered(" Unwinder: %s\n", unwinder);
+ need_nl = 0;
+ }
+
count = 0;
numregs = gdbarch_num_regs (gdbarch)
+ gdbarch_num_pseudo_regs (gdbarch);
diff --git a/gdb/tramp-frame.c b/gdb/tramp-frame.c
index 46d32fd..0880113 100644
--- a/gdb/tramp-frame.c
+++ b/gdb/tramp-frame.c
@@ -157,5 +157,6 @@ tramp_frame_prepend_unwinder (struct gdbarch *gdbarch,
unwinder->sniffer = tramp_frame_sniffer;
unwinder->this_id = tramp_frame_this_id;
unwinder->prev_register = tramp_frame_prev_register;
+ unwinder->unwinder_name = "tramp-frame.c";
frame_unwind_prepend_unwinder (gdbarch, unwinder);
}
--
1.6.3.1.169.g33fd.dirty
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 2/2] Add "set/show debug unwinder" prefix commands.
2009-05-29 23:09 [PATCH 1/2] Add an undwinder_name field to "struct frame_unwind" for use by "info frame" Samuel Bronson
@ 2009-05-29 23:10 ` Samuel Bronson
2009-05-30 6:57 ` Eli Zaretskii
` (2 more replies)
2009-06-04 22:00 ` [PATCH 1/2] Add an undwinder_name field to "struct frame_unwind" for use by "info frame" Tom Tromey
1 sibling, 3 replies; 11+ messages in thread
From: Samuel Bronson @ 2009-05-29 23:10 UTC (permalink / raw)
To: gdb-patches; +Cc: Samuel Bronson
Also add one subcommand for tracing the sniffing of stack frames by
unwinders.
Signed-off-by: Samuel Bronson <naesten@gmail.com>
---
gdb/frame-unwind.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++
gdb/frame-unwind.h | 7 ++++++
2 files changed, 64 insertions(+), 0 deletions(-)
diff --git a/gdb/frame-unwind.c b/gdb/frame-unwind.c
index 98d6b43..5e893bb 100644
--- a/gdb/frame-unwind.c
+++ b/gdb/frame-unwind.c
@@ -23,6 +23,7 @@
#include "dummy-frame.h"
#include "value.h"
#include "regcache.h"
+#include "gdbcmd.h"
#include "gdb_assert.h"
#include "gdb_obstack.h"
@@ -42,6 +43,9 @@ struct frame_unwind_table
struct frame_unwind_table_entry **osabi_head;
};
+/* trace unwinders called */
+static int trace_unwinders;
+
static void *
frame_unwind_init (struct obstack *obstack)
{
@@ -91,14 +95,33 @@ frame_unwind_find_by_frame (struct frame_info *this_frame, void **this_cache)
struct frame_unwind_table *table = gdbarch_data (gdbarch, frame_unwind_data);
struct frame_unwind_table_entry *entry;
struct cleanup *old_cleanup;
+
+ if (trace_unwinders) {
+ fprintf_unfiltered (gdb_stdlog, "[ Searching for unwinder for frame ...\n");
+ }
+
for (entry = table->list; entry != NULL; entry = entry->next)
{
struct cleanup *old_cleanup;
+ const char *uname = entry->unwinder->unwinder_name;
+
+ if (trace_unwinders) {
+ if (!uname)
+ uname = "<unknown>";
+
+ fprintf_unfiltered (gdb_stdlog, "... trying unwinder \"%s\" (at %p) ...\n",
+ uname, entry->unwinder);
+ }
old_cleanup = frame_prepare_for_sniffer (this_frame, entry->unwinder);
if (entry->unwinder->sniffer (entry->unwinder, this_frame,
this_cache))
{
+ if (trace_unwinders) {
+ fprintf_unfiltered(gdb_stdlog,
+ "... unwinder \"%s\"'s sniffer succeeded. Search over.]\n",
+ uname);
+ }
discard_cleanups (old_cleanup);
return entry->unwinder;
}
@@ -200,8 +223,42 @@ frame_unwind_got_address (struct frame_info *frame, int regnum,
extern initialize_file_ftype _initialize_frame_unwind; /* -Wmissing-prototypes */
+/* "set debug unwinder" command list */
+struct cmd_list_element *set_debug_unwinder_list;
+/* "show debug unwinder" command list */
+struct cmd_list_element *show_debug_unwinder_list;
+
+static void
+set_debug_unwinder_cmd (char *args, int from_tty)
+{
+ help_list (set_debug_unwinder_list, "set debug unwinder ", -1, gdb_stdout);
+}
+
+static void
+show_debug_unwinder_cmd (char *args, int from_tty)
+{
+ help_list (show_debug_unwinder_list, "show debug unwinder ", -1, gdb_stdout);
+}
+
void
_initialize_frame_unwind (void)
{
frame_unwind_data = gdbarch_data_register_pre_init (frame_unwind_init);
+
+ add_prefix_cmd ("unwinder", class_maintenance, set_debug_unwinder_cmd, _("\
+Set stack frame unwinder debugging variables."),
+ &set_debug_unwinder_list, "set debug unwinder ",
+ 0, &setdebuglist);
+
+ add_prefix_cmd ("unwinder", class_maintenance, show_debug_unwinder_cmd, _("\
+Show stack frame unwinder debugging variables."),
+ &show_debug_unwinder_list, "set debug unwinder ",
+ 0, &showdebuglist);
+
+ add_setshow_boolean_cmd ("trace-tried", class_maintenance, &trace_unwinders,
+ _("Set tracing of unwinders tried."),
+ _("Show tracing of unwinders tried."),
+ NULL /* main doc */,
+ NULL, NULL,
+ &set_debug_unwinder_list, &show_debug_unwinder_list);
}
diff --git a/gdb/frame-unwind.h b/gdb/frame-unwind.h
index 4da7fcc..d8dfc30 100644
--- a/gdb/frame-unwind.h
+++ b/gdb/frame-unwind.h
@@ -152,6 +152,13 @@ extern void frame_unwind_prepend_unwinder (struct gdbarch *gdbarch,
extern void frame_unwind_append_unwinder (struct gdbarch *gdbarch,
const struct frame_unwind *unwinder);
+/* Command lists for "set/show debug unwinder" subcommands. Most of
+ these are expected to be flags to request an unwinder or
+ closely-related group of unwinders to give a blow-by-blow account
+ of why it's sniffer did or did not succeed. */
+extern struct cmd_list_element *set_debug_unwinder_list;
+extern struct cmd_list_element *show_debug_unwinder_list;
+
/* Iterate through sniffers for THIS frame until one returns with an
unwinder implementation. Possibly initialize THIS_CACHE. */
--
1.6.3.1.169.g33fd.dirty
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] Add "set/show debug unwinder" prefix commands.
2009-05-29 23:10 ` [PATCH 2/2] Add "set/show debug unwinder" prefix commands Samuel Bronson
@ 2009-05-30 6:57 ` Eli Zaretskii
2009-05-30 19:25 ` Doug Evans
2009-06-04 22:05 ` Tom Tromey
2 siblings, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2009-05-30 6:57 UTC (permalink / raw)
To: Samuel Bronson; +Cc: gdb-patches, naesten
> From: Samuel Bronson <naesten@gmail.com>
> Cc: Samuel Bronson <naesten@gmail.com>
> Date: Fri, 29 May 2009 19:16:27 -0400
>
> Also add one subcommand for tracing the sniffing of stack frames by
> unwinders.
Thanks.
If the code is accepted, we will need a suitable change for the manual
describing this new command.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] Add "set/show debug unwinder" prefix commands.
2009-05-29 23:10 ` [PATCH 2/2] Add "set/show debug unwinder" prefix commands Samuel Bronson
2009-05-30 6:57 ` Eli Zaretskii
@ 2009-05-30 19:25 ` Doug Evans
2009-05-31 15:50 ` Samuel Bronson
2009-06-04 22:05 ` Tom Tromey
2 siblings, 1 reply; 11+ messages in thread
From: Doug Evans @ 2009-05-30 19:25 UTC (permalink / raw)
To: Samuel Bronson; +Cc: gdb-patches
On Fri, May 29, 2009 at 4:16 PM, Samuel Bronson <naesten@gmail.com> wrote:
> Also add one subcommand for tracing the sniffing of stack frames by
> unwinders.
>
> [...]
> +/* trace unwinders called */
> +static int trace_unwinders;
[N.B. None of this is binding. Just "fwiw".]
Just some nits:
I don't care *too* much about the naming, but I do care about
following existing conventions and gdb seems to have a pretty
consistent convention of using "debug" in these situations instead of
"trace". E.g., debug_unwinders?
> void
> _initialize_frame_unwind (void)
> {
> frame_unwind_data = gdbarch_data_register_pre_init (frame_unwind_init);
> +
> + add_prefix_cmd ("unwinder", class_maintenance, set_debug_unwinder_cmd, _("\
> +Set stack frame unwinder debugging variables."),
> + &set_debug_unwinder_list, "set debug unwinder ",
> + 0, &setdebuglist);
> +
> + add_prefix_cmd ("unwinder", class_maintenance, show_debug_unwinder_cmd, _("\
> +Show stack frame unwinder debugging variables."),
> + &show_debug_unwinder_list, "set debug unwinder ",
> + 0, &showdebuglist);
> +
> + add_setshow_boolean_cmd ("trace-tried", class_maintenance, &trace_unwinders,
> + _("Set tracing of unwinders tried."),
> + _("Show tracing of unwinders tried."),
> + NULL /* main doc */,
> + NULL, NULL,
> + &set_debug_unwinder_list, &show_debug_unwinder_list);
> }
Adding another level of prefixes just for debugging the unwinder seems
excessive.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] Add "set/show debug unwinder" prefix commands.
2009-05-30 19:25 ` Doug Evans
@ 2009-05-31 15:50 ` Samuel Bronson
0 siblings, 0 replies; 11+ messages in thread
From: Samuel Bronson @ 2009-05-31 15:50 UTC (permalink / raw)
To: Doug Evans; +Cc: gdb-patches
On Sat, May 30, 2009 at 3:24 PM, Doug Evans <dje@google.com> wrote:
> On Fri, May 29, 2009 at 4:16 PM, Samuel Bronson <naesten@gmail.com> wrote:
>> Also add one subcommand for tracing the sniffing of stack frames by
>> unwinders.
>>
>> [...]
>> +/* trace unwinders called */
>> +static int trace_unwinders;
>
> [N.B. None of this is binding. Just "fwiw".]
>
> Just some nits:
>
> I don't care *too* much about the naming, but I do care about
> following existing conventions and gdb seems to have a pretty
> consistent convention of using "debug" in these situations instead of
> "trace". E.g., debug_unwinders?
Ah. Didn't realize it made much difference for static vars.
> Adding another level of prefixes just for debugging the unwinder seems
> excessive.
Well, I had been planning to add another subcommand to trace the
activities of the dawrf2 unwinder. I did start it, but then I
discovered that the CFI for the code I was wondering about was being
left out of the kernel image due to an incorrect linker script. I
still think it might be useful to be able to add others, but I'm not
going to be stubborn about it.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] Add an undwinder_name field to "struct frame_unwind" for use by "info frame".
2009-05-29 23:09 [PATCH 1/2] Add an undwinder_name field to "struct frame_unwind" for use by "info frame" Samuel Bronson
2009-05-29 23:10 ` [PATCH 2/2] Add "set/show debug unwinder" prefix commands Samuel Bronson
@ 2009-06-04 22:00 ` Tom Tromey
2009-06-09 0:24 ` Samuel Bronson
1 sibling, 1 reply; 11+ messages in thread
From: Tom Tromey @ 2009-06-04 22:00 UTC (permalink / raw)
To: Samuel Bronson; +Cc: gdb-patches
>>>>> "Samuel" == Samuel Bronson <naesten@gmail.com> writes:
Samuel> Have "info frame" display this field when present.
Samuel> Fill in the field for unwinders (besides the sentinel) which are
Samuel> normally built on i386 Linux.
Funnily enough, I wanted this yesterday :)
This mostly looks ok. It needs a ChangeLog entry. And I have some
formatting nits...
Samuel> +const char *get_frame_unwinder_name (struct frame_info *frame)
Newline after the first "*".
Samuel> + unwinder = get_frame_unwinder_name(fi);
Space before the open paren.
Also, do you have copyright assignment papers in place? Those are a
prerequisite for us to accept a non-trivial patch.
Tom
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] Add "set/show debug unwinder" prefix commands.
2009-05-29 23:10 ` [PATCH 2/2] Add "set/show debug unwinder" prefix commands Samuel Bronson
2009-05-30 6:57 ` Eli Zaretskii
2009-05-30 19:25 ` Doug Evans
@ 2009-06-04 22:05 ` Tom Tromey
2009-06-09 0:49 ` Samuel Bronson
2 siblings, 1 reply; 11+ messages in thread
From: Tom Tromey @ 2009-06-04 22:05 UTC (permalink / raw)
To: Samuel Bronson; +Cc: gdb-patches
>>>>> "Samuel" == Samuel Bronson <naesten@gmail.com> writes:
Samuel> Also add one subcommand for tracing the sniffing of stack
Samuel> frames by unwinders.
This is also basically ok; just needs a ChangeLog and some formatting
fixlets, nothing serious.
Samuel> +/* trace unwinders called */
Samuel> +static int trace_unwinders;
In the GNU style, comments should be sentences, so should start with a
capital letter and end with a period followed by two spaces. Yes,
we're that nit picky ;)
There are a few instances of this.
Samuel> + if (trace_unwinders) {
Samuel> + fprintf_unfiltered (gdb_stdlog, "[ Searching for unwinder for frame ...\n");
Samuel> + }
Drop the braces.
Samuel> for (entry = table->list; entry != NULL; entry = entry->next)
Samuel> {
Samuel> struct cleanup *old_cleanup;
Samuel> + const char *uname = entry->unwinder->unwinder_name;
Samuel> +
Samuel> + if (trace_unwinders) {
The opening brace is misplaced here, in the GNU style it goes on the
next line. There are a couple instances of this.
Samuel> + add_setshow_boolean_cmd ("trace-tried", class_maintenance, &trace_unwinders,
I think this could just be "set debug unwinder", rather than
"set debug unwinder trace-tried".
If you do plan to send another "debug unwinder" sub-command, maybe we
could discuss the naming now, before the patch.
Tom
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] Add an undwinder_name field to "struct frame_unwind" for use by "info frame".
2009-06-04 22:00 ` [PATCH 1/2] Add an undwinder_name field to "struct frame_unwind" for use by "info frame" Tom Tromey
@ 2009-06-09 0:24 ` Samuel Bronson
2009-06-09 19:41 ` Tom Tromey
0 siblings, 1 reply; 11+ messages in thread
From: Samuel Bronson @ 2009-06-09 0:24 UTC (permalink / raw)
To: tromey; +Cc: Samuel Bronson, gdb-patches
At Thu, 04 Jun 2009 15:59:57 -0600,
Tom Tromey wrote:
>
> >>>>> "Samuel" == Samuel Bronson <naesten@gmail.com> writes:
>
> Samuel> Have "info frame" display this field when present.
> Samuel> Fill in the field for unwinders (besides the sentinel) which are
> Samuel> normally built on i386 Linux.
>
> Funnily enough, I wanted this yesterday :)
>
> This mostly looks ok. It needs a ChangeLog entry. And I have some
> formatting nits...
Hmm. How is that different from the thing above the patch (aka "commit
message")?
> Samuel> +const char *get_frame_unwinder_name (struct frame_info *frame)
>
> Newline after the first "*".
Ah.
> Samuel> + unwinder = get_frame_unwinder_name(fi);
>
> Space before the open paren.
Yeah, I've noticed that you always put those in and have been doing so
myself more recently.
> Also, do you have copyright assignment papers in place? Those are a
> prerequisite for us to accept a non-trivial patch.
Ah, no, not yet. I assume this doesn't qualify? I'd be fairly happy
to do so, my concerns at this point being:
a) what if I write some fairly generic code and end up wanting to BSD it?
b) how do I know you aren't going to add front- or back-cover texts
or invariant sections to the manual?
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] Add "set/show debug unwinder" prefix commands.
2009-06-04 22:05 ` Tom Tromey
@ 2009-06-09 0:49 ` Samuel Bronson
2009-06-09 19:44 ` Tom Tromey
0 siblings, 1 reply; 11+ messages in thread
From: Samuel Bronson @ 2009-06-09 0:49 UTC (permalink / raw)
To: tromey; +Cc: Samuel Bronson, gdb-patches
At Thu, 04 Jun 2009 16:05:06 -0600,
Tom Tromey wrote:
>
> >>>>> "Samuel" == Samuel Bronson <naesten@gmail.com> writes:
>
> Samuel> Also add one subcommand for tracing the sniffing of stack
> Samuel> frames by unwinders.
>
> This is also basically ok; just needs a ChangeLog and some formatting
> fixlets, nothing serious.
>
> Samuel> +/* trace unwinders called */
> Samuel> +static int trace_unwinders;
>
> In the GNU style, comments should be sentences, so should start with a
> capital letter and end with a period followed by two spaces. Yes,
> we're that nit picky ;)
Strange definition of sentence you have at GNU.
> There are a few instances of this.
>
> Samuel> + if (trace_unwinders) {
> Samuel> + fprintf_unfiltered (gdb_stdlog, "[ Searching for unwinder for frame ...\n");
> Samuel> + }
Point, even the Linux style guide says you only need those if you want
to match the other body in an if/else, or are in the midst of an
if/else-if/.../else chain...
> Samuel> for (entry = table->list; entry != NULL; entry = entry->next)
> Samuel> {
> Samuel> struct cleanup *old_cleanup;
> Samuel> + const char *uname = entry->unwinder->unwinder_name;
> Samuel> +
> Samuel> + if (trace_unwinders) {
>
> The opening brace is misplaced here, in the GNU style it goes on the
> next line. There are a couple instances of this.
Grrr... why did RMS have to abandon the prophets Kernighan and
Ritchie?
> Samuel> + add_setshow_boolean_cmd ("trace-tried", class_maintenance, &trace_unwinders,
>
> I think this could just be "set debug unwinder", rather than
> "set debug unwinder trace-tried".
>
> If you do plan to send another "debug unwinder" sub-command, maybe we
> could discuss the naming now, before the patch.
Actually, I ended up deciding the one I was thinking of wouldn't be
that useful, especially when I figured out it was the kernel link
process that was causing my actual problem, so I guess "set debug
unwinder" would be fine.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] Add an undwinder_name field to "struct frame_unwind" for use by "info frame".
2009-06-09 0:24 ` Samuel Bronson
@ 2009-06-09 19:41 ` Tom Tromey
0 siblings, 0 replies; 11+ messages in thread
From: Tom Tromey @ 2009-06-09 19:41 UTC (permalink / raw)
To: Samuel Bronson; +Cc: gdb-patches
>>>>> "Samuel" == Samuel Bronson <naesten@gmail.com> writes:
Tom> This mostly looks ok. It needs a ChangeLog entry. And I have some
Tom> formatting nits...
Samuel> Hmm. How is that different from the thing above the patch (aka "commit
Samuel> message")?
There's an extensive, nit-picky standard for ChangeLog formatting.
http://www.gnu.org/prep/standards/standards.html#Change-Logs
A lot of the style manual is worth reading, just because we review
patches for conformance to it.
[ assignment ]
Samuel> Ah, no, not yet. I assume this doesn't qualify? I'd be fairly
Samuel> happy to do so, my concerns at this point being:
I will get you started. We can't answer your questions, but you can
ask the FSF assignment clerk and see what he says.
Tom
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] Add "set/show debug unwinder" prefix commands.
2009-06-09 0:49 ` Samuel Bronson
@ 2009-06-09 19:44 ` Tom Tromey
0 siblings, 0 replies; 11+ messages in thread
From: Tom Tromey @ 2009-06-09 19:44 UTC (permalink / raw)
To: Samuel Bronson; +Cc: gdb-patches
>>>>> "Samuel" == Samuel Bronson <naesten@gmail.com> writes:
Samuel> Strange definition of sentence you have at GNU.
:)
Samuel> Point, even the Linux style guide says you only need those if you want
Samuel> to match the other body in an if/else, or are in the midst of an
Samuel> if/else-if/.../else chain...
Yeah. gdb has used a different style since time immemorial.
http://www.gnu.org/prep/standards/standards.html#Writing-C
Tom
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2009-06-09 19:44 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-29 23:09 [PATCH 1/2] Add an undwinder_name field to "struct frame_unwind" for use by "info frame" Samuel Bronson
2009-05-29 23:10 ` [PATCH 2/2] Add "set/show debug unwinder" prefix commands Samuel Bronson
2009-05-30 6:57 ` Eli Zaretskii
2009-05-30 19:25 ` Doug Evans
2009-05-31 15:50 ` Samuel Bronson
2009-06-04 22:05 ` Tom Tromey
2009-06-09 0:49 ` Samuel Bronson
2009-06-09 19:44 ` Tom Tromey
2009-06-04 22:00 ` [PATCH 1/2] Add an undwinder_name field to "struct frame_unwind" for use by "info frame" Tom Tromey
2009-06-09 0:24 ` Samuel Bronson
2009-06-09 19:41 ` Tom Tromey
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox