[PATCH] Add CTF support to GDB [2/4] Fix a bug of function dwarf_expr_frame_base
Hui Zhu
teawater@gmail.com
Sat Dec 1 16:34:00 GMT 2012
On Fri, Nov 30, 2012 at 3:14 AM, Tom Tromey <tromey@redhat.com> wrote:
>>>>>> "Hui" == Hui Zhu <hui_zhu@mentor.com> writes:
>
> Hui> 2012-11-20 Hui Zhu <hui_zhu@mentor.com>
> Hui> * dwarf2loc.c (dwarf_expr_frame_base): Add check for the return
> Hui> value of get_frame_block.
>
> I think this is reasonable even without the rest of your patches.
OK.
>
> One nit:
>
> Hui> + if (bl == NULL)
> Hui> + error (_("No symbol table info available.\n"));
>
> I don't think this is a very clear error message.
> I'm not sure what else to suggest though.
>
> Also, no \n at the end of the error message.
>
> Tom
What about I change it to "frame address is not available." because in
get_frame_block:
if (!get_frame_address_in_block_if_available (frame, &pc))
return NULL;
Post a new version.
Thanks,
Hui
2012-11-01 Hui Zhu <hui_zhu@mentor.com>
* dwarf2loc.c (dwarf_expr_frame_base): Add check for the return
value of get_frame_block.
--- a/dwarf2loc.c
+++ b/dwarf2loc.c
@@ -332,11 +332,15 @@ dwarf_expr_frame_base (void *baton, cons
this_base method. */
struct symbol *framefunc;
struct dwarf_expr_baton *debaton = (struct dwarf_expr_baton *) baton;
+ struct block *bl = get_frame_block (debaton->frame, NULL);
+
+ if (bl == NULL)
+ error (_("frame address is not available."));
/* Use block_linkage_function, which returns a real (not inlined)
function, instead of get_frame_function, which may return an
inlined function. */
- framefunc = block_linkage_function (get_frame_block (debaton->frame, NULL));
+ framefunc = block_linkage_function (bl);
/* If we found a frame-relative symbol then it was certainly within
some function associated with a frame. If we can't find the frame,
More information about the Gdb-patches
mailing list