RE: [PATCH v2 3/3] btrace, vdso: add vdso target sections

Metzger, Markus T
2014-05-20T14:10:09Z

> -----Original Message-----
> From: Pedro Alves [mailto:palves@redhat.com]
> Sent: Tuesday, May 20, 2014 2:40 PM

> > + sections = NULL;
> > + sections_end = NULL;
> > + make_cleanup (xfree, sections);
>
> This will always xfree NULL. You either want:
>
> make_cleanup (free_current_contents, &sections);

That's what I wanted. Thanks!

> or move the cleanup to within the if/then block. You also need
> to make sure to discard the cleanup on success.
>
> Or, better yet, not install a cleanup at all? build_section_table
> allocates the memory, and then the array is passed directly to
> add_target_sections, which can be seen as a transfer of ownership.
> If something throws after that call, we don't want the sections be
> be simply xfree'd as that'd leave dangling pointers in the target
> sections table.

add_target_sections copies the sections.

> > +# capture the disassembly of gettimeofday while live debugging
> > +set live_gettimeofday [capture_command_output "disassemble
> gettimeofday" ""]
> > +
> > +# trace the test code
> > +gdb_test_no_output "record btrace"
> > +gdb_test "next" "main\.2.*"
> > +
> > +# capture the disassembly of gettimeofday while replaying
> > +gdb_test "record goto begin" "main\.1.*"
> > +set replay_gettimeofday [capture_command_output "disassemble
> gettimeofday" ""]
>
> I think these two capture_command_output calls generate duplicate
> gdb.sum output ? That's why I had with_test_prefix in my suggestion.

I overlooked that. Sorry.

Regards,
Markus.
Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen, Deutschland
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk
Registergericht: Muenchen HRB 47456
Ust.-IdNr./VAT Registration No.: DE129385895
Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052