Forum Discussion

GCRhoads's avatar
14 years ago

How do you locate a memory bounds error?



I have a C++ application program.  I ran it under AQtime using the allocation profiler with the "check memory bounds" option selected.

In the event view panel, there are several of the following messages:



Debug string: AQtime detected unexpected data written after a memory block.



I tried to find more information about this, but I wasn't able to find anything that indicated what line generated this message nor even what class the object corresponding to the memory block belongs to.  In short, I wasn't able to find any additional information beyond the preceding error message. How can I locate the source of the error?



-- Glenn C. Rhoads
  • AlexKaras's avatar
    AlexKaras
    Champion Level 3
    Hi Glenn,



    Have a look at this article: http://smartbear.com/support/viewarticle/18198/

    Quote: "The Allocation profiler displays the bounds check results along with information
    about existing classes and instances. The Classes category of the Report panel contains the Memory Overwrite Error row. The presence of this row indicates that
    the profiler detected a violation of memory block bounds."



    Does this help?
  • Hello Glenn,


    There is the "Finding Memory Block Violations" Help topic that explains how you can see the sequence of function calls that have resulted in an error. In brief, you need to find the "Memory Overwrite Error" value in the Objects pane, select it and switch to the Creation Call Stack pane of the Details panel.