Anteru's blog
  • Consulting
  • Research
    • Assisted environment probe placement
    • Assisted texture assignment
    • Error Metrics for Smart Image Refinement
    • High-Quality Shadows for Streaming Terrain Rendering
    • Hybrid Sample-based Surface Rendering
    • Interactive rendering of Giga-Particle Fluid Simulations
    • Quantitative Analysis of Voxel Raytracing Acceleration Structures
    • Real-time Hybrid Hair Rendering
    • Scalable rendering for very large meshes
    • Subpixel Reconstruction Antialiasing
    • Tiled light trees
  • About
  • Archive

C++ tricks, #5: Breaking on memory allocations with VC

July 19, 2007
  • Programming
approximately 1 minutes to read

A little known feature is breaking on a specific memory allocation without recompiling your app. Let’s assume you’ve run your code with _CrtDumpMemoryLeaks (); and you got something like

Detected memory leaks!
Dumping objects ->
{12213} normal block at 0x004DA780, 4 bytes long.
    Data: <4x  > 34 78 B5 00
Object dump complete.

Now, you want to track that down. Nothing simpler than that! Fire up your program in the debugger (I suggest running “Debug”, “Step into” to stop right at the first instruction), open your immediate window and enter:

{,,msvcr80d.dll}_crtBreakAlloc = 12213

This will work if you are linking against the multi-threaded DLLs (default with VC8), otherwise you can enter:

_crtBreakAlloc = 12213

Continue and you’ll get a “buggy_app.exe has triggered a breakpoint” as soon as you hit this allocation, and unless you’ve killed your stack you should see the location in the call stack.

Previous post
Next post

Recent posts

  • Five years of GPU DB
    Posted on 2020-09-27
  • Enabling SSL in your local network
    Posted on 2020-05-17
  • Goodbye, Bitbucket!
    Posted on 2020-03-19
  • QEMU, KVM and trim
    Posted on 2020-01-26
  • Fixing network after Ubuntu 19.04 to 19.10 upgrade
    Posted on 2019-10-26
  • Older posts

Find me on the web

  • GitHub
  • GPU database
  • Projects

Follow me

NIV_Anteru

Contents © 2005-2021 | Anteru | Imprint/Impressum | Privacy policy/Datenschutz