• Kapileshwar Singh's avatar
    tools lib traceevent: Fix string handling in heterogeneous arch environments · c2e4b24f
    Kapileshwar Singh authored
    
    
    When a trace recorded on a 32-bit device is processed with a 64-bit
    binary, the higher 32-bits of the address need to ignored.
    
    The lack of this results in the output of the 64-bit pointer
    value to the trace as the 32-bit address lookup fails in find_printk().
    
    Before:
    
      burn-1778  [003]   548.600305: bputs:   0xc0046db2s: 2cec5c058d98c
    
    After:
    
      burn-1778  [003]   548.600305: bputs:   0xc0046db2s: RT throttling activated
    
    The problem occurs in PRINT_FIELD when the field is recognized as a
    pointer to a string (of the type const char *)
    
    Heterogeneous architectures cases below can arise and should be handled:
    
    * Traces recorded using 32-bit addresses processed on a 64-bit machine
    * Traces recorded using 64-bit addresses processed on a 32-bit machine
    Reported-by: default avatarJuri Lelli <juri.lelli@arm.com>
    Signed-off-by: default avatarKapileshwar Singh <kapileshwar.singh@arm.com>
    Reviewed-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    Cc: David Ahern <dsahern@...
    c2e4b24f
event-parse.c 142 KB