Hi, On Sun, Mar 26, 2017 at 12:41:50PM +0300, Edgar Kaziahmedov wrote: > Meaningful and informative printings have been added for all > v4l2 buf types in the 'print_v4l2_format_fmt' routine.
Our style of commit messages assumes present tense. > As a new kernel version, it has been added additional > defines to xlat/v4l2*.in files. Updates of V4L2 constants should go in a separate commit. > Apart from this, I want to participate in the GSoC program, in > particular your project. Thanks for showing interest in strace GSoC projects. > --- a/v4l2.c > +++ b/v4l2.c > @@ -200,6 +200,8 @@ print_v4l2_fmtdesc(struct tcb *const tcp, const > kernel_ulong_t arg) > > #include "xlat/v4l2_fields.h" > #include "xlat/v4l2_colorspaces.h" > +#include "xlat/v4l2_vbi_flags.h" > +#include "xlat/v4l2_sliced_flags.h" > > static void > print_v4l2_format_fmt(const char *prefix, const struct_v4l2_format *f) > @@ -248,37 +250,81 @@ print_v4l2_format_fmt(const char *prefix, const > struct_v4l2_format *f) > break; > } > #endif > - > - /* TODO: Complete this switch statement */ > -#if 0 > case V4L2_BUF_TYPE_VIDEO_OVERLAY: > #if HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY > - case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: > + case V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY: { > #endif This is problematic: the opening curly bracket is #if'ed, but the corresponding closing bracket isn't. > + unsigned int i; > + > tprints(prefix); > - tprints("fmt.win={???}"); > + tprintf("fmt.win={left=%d, top=%d, width=%u, height=%u,field=", A space after comma is lost. > + ARGS_RECT(f->fmt.win.w)); > + printxval(v4l2_fields, f->fmt.win.field, "V4L2_FIELD_???"); Something went wrong with the indentation. At least in this file indentation is implemented using TABs, please follow the style. > + tprintf(", chromakey=0x%08x, clips=[", f->fmt.win.chromakey); > + for (i = 0; i < f->fmt.win.clipcount; i++) { v4l2_window.clipcount is provided by tracee and therefore cannot be trusted. > + if (i > 0) > + tprints(", "); > + tprintf(FMT_RECT, ARGS_RECT(f->fmt.win.clips->c)); > + } v4l2_window.clips is a tracee's pointer to its memory. Try to run this code, the segfault is already waiting for you. :) We have primitives for printing tracee's arrays, please use them instead. > + tprintf("], clipcount=%u, bitmap=%p, global_alpha=0x%02x}", v4l2_window.bitmap is a tracee's pointer, use printaddr. Also, use %#x instead of custom formats like 0x%02x. OK, that's enough for now. Please do not forget to add a test case for this new functionality. -- ldv
signature.asc
Description: PGP signature
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel