title: Getting a stack trace from GDB
body: <p>I must have a misunderstanding of the stack, or how functions are called, the backtrace results I'm getting from GDB make no sense to me. I'm trying to find out where things get called in a program so that I can add my component.</p>
  
  <p>The tool draws bounding boxes on videos, what I made is an interpolator. I thought it only made sense to open GDB and put a breakpoint in when a box was being drawn, and run a backtrace. Here's mu output (after running the program from <code>ffmpeg.c main()</code>)</p>
  
  <pre><code>#0  draw_glyphs (vidatbox=0x10183d200, picref=0x10141e340, width=720, height=480,
  rgbcolor=0x10183d284 "????", yuvcolor=0x10183d278 "뀀?\020???\020???????", x=0, y=0) at 
  libavfilter/vf_VidAT.c:627
  #1  0x000000010001ce4c in draw_text (ctx=0x10120df20, picref=0x10141e340, width=720, 
  height=480) at libavfilter/vf_VidAT.c:787
  </code></pre>
  
  <p>Disregarding all the non ascii chars,how are the two functions <code>draw_glyphs</code> and <code>draw_text</code> being called? How come there is nothing else on the stack? When I select Frame #1 and try and go <code>up</code>, it tells me:</p>
  
  <pre><code>Initial frame selected; you cannot go up.
  </code></pre>
  
  <p>EDIT:</p>
  
  <p>I've looked more, and I'm even more confused then I was when I asked. The function <code>draw_glyphs</code> is not even called inside of the main that I'm running. I've grepped through all the files that this uses to compile and well...it's not called anywhere!</p>
  
  <p>Does this mean that it's a dynamically created function pointer or something? If so, would that make the stack innaccessible like mine is?</p>