开发者

What's so called "Frames" in visual studio?

In the Call Stack window of visual studio, it reports:

[Frames below may be incorrect and/or missing, no symbols loaded for IPCamera.ax]   

What does it mean by Frames, and why missing symbols may cause it incorrect?AFAIK,symbols are just for debugging info,missing symbols will only 开发者_运维知识库make the source invisible .

What's so called "Frames" in visual studio?


Frames == stack frames.

A stack frame is a record that stores information for each function call on the call stack. It contains all parameters, local variables and potential return values of the function that got called.

For each function call that is currently running (i.e. that has not yet exited), there is an additional frame on the call stack.

Missing symbols may indeed cause incorrect display of the stack frames, mainly due to two phenomena:

  • Function inlining, and
  • Tail-call optimization.

In both cases, function calls in the actual code are transformed into something else, so stack frames are lost (because no call is generated, and hence no stack frame).


Microsoft provides symbol files for most if not all of its OS DLLs. If you configure Visual Studio to load them, you can avoid the missing stack frame problem in the call stack display. See this article for more info: Link

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜