[Crash-utility] right shift of the subtraction result

Derek Cheng drc at yahoo-inc.com
Wed May 20 18:33:30 UTC 2015


yes, I mean crash command line is lacking support of some advancedarithmetic, like this pd command, it doesn't have to send it to gdb;
BTW, these days I am looking for an advanced scripting in crash,does crash provide some builtin script language ?
Or have you looked this pykdump project, to embed a python interpretersounds like a good idea, since gdb has support python scripting as well,
http://sourceforge.net/projects/pykdump/
 

Thanks,

     On Wednesday, May 20, 2015 11:17 AM, Dave Anderson <anderson at redhat.com> wrote:
   

 

----- Original Message -----
> 
> Hi Dave,
> Does this sound like a bug, it need right shift of the subtraction result,
> crash-git> pd (678324157984276 >> 32)
> $10 = 157934
> crash-git> pd ((681670518181331-678324157984276) >> 32)
> p: gdb request failed: p ((681670518181331-678324157984276)
> crash-git>
> 
> It might be lacking support of some advanced arithmetic, so what is a proper
> wayto do some arithmetic like this?

No, it is a crash bug.  If you turn on the console mode, you can see the string
that is passed on to gdb.  Simple example:
  
  crash> !tty
  /dev/pts/8
  crash> set console /dev/pts/8
  debug console [2850]: /dev/pts/8
  console: /dev/pts/8
  crash> set debug 1
  debug: 1
  crash>
  
The simple shift case works, and you can see the string that gets passed 
to gdb on the 2nd line of output, in the bracket after gdb_pass_through:
  
  crash> pd (15 >> 1)
  error() trace: 467e99 => 51c147 => 518ca6 => 46eaff
  gdb_pass_through: [p (15 >> 1)]
  p: per_cpu_symbol_search((15 >> 1)): NULL
  $9 = 7
  crash>
  
But by adding the internal set of parentheses, the string gets
clipped, and just "p ((15+1)" gets passed to gdb:
  
  crash> pd ((15+1) >> 1)
  error() trace: 467e99 => 51c147 => 518ca6 => 46eaff
  p: per_cpu_symbol_search(((15+1)): NULL
  gdb_pass_through: [p ((15+1)]
  error() trace: 467e99 => 51c1e7 => 51a7d5 => 46eaff
  p: gdb request failed: p ((15+1)
  crash> 

So it's either related to the crash command line redirection code, 
or in the process_gdb_output() function.  (Feel free to debug it
if you have the time...)

Thanks,
  Dave


  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20150520/cbff4524/attachment.htm>


More information about the Crash-utility mailing list