Menu

#49 More 64-bit DEBUG trouble

rel_0_9_2
open
nobody
5
2010-03-04
2010-03-04
No

There are more problems with DEBUG() pointer parameter formatting
in 64-bit mode. Many files under extern_components have uses of %x,
%08X and %08X. Those formats are not very well matched by %p.
This patch uses the "#include <inttypes.h>" macros PRIxPTR and
PRIXPTR to format pointers cast to type uintptr_t.
The %08x formats are made to use %08x for 32-bit pointers and
%016X for 64-bit by using %0*"PRIxPTR" and adding a field width
parameter of (int)(sizeof(void *)*2) . These changes need to
have the inttypes.h header included. That is added to the
*debug_levels.h header files. (A couple of those also pick up
#include <stdio.h> to match the use of printf.)

Discussion

  • Mike Stroyan

    Mike Stroyan - 2010-03-04

    patch for the components repository using inttypes.h

     
  • Mike Stroyan

    Mike Stroyan - 2010-03-04

    I had originally fixed this against release 0.9.2.1.
    The two attached patches are now based on
    omxil changeset 92af733f834f684287251582e95fd1368df5a6a8
    and
    components changeset 709c10a9272bfa5455ad3b4118464809a83a510d

     

Log in to post a comment.