title: debugging c program with gdb for showing hexadecimal addresses
body: <p>I have a problem about debugging c code.I did research but it doesn't satisfy me.
  I know the following commands:</p>
  
  <pre><code>(gdb) x/x 'address' #show hexadecimal address
  
  (gdb) x/100s 'address' #show next 100 decimals 
  
  (gdb) x/10b 0x0804846c-10 #show byte at 0x0804846c-10
  
  (gdb) x/10b 0x0804846c+20 #show byte at 0x0804846c+20
  
  (gdb) x/10x 0x0804846c show 10 addresses at 0x0804846c
  
  (gdb) x/10x $esp #show next 10 addresses at esp register
  </code></pre>
  
  <p>but I want to know what does <code>x/10x $esp - 50</code> do exactly?
  Did I get it? Is it correct?</p>
  
  <p>"It shows 50 addresses before $esp up to 10 addresses after it"
  I would be thankful if you tell me completely to correct me... :(</p>