The memory is allocated and freed in the same Release DLL. The new/delete operators overloading is delegating the actual implementation into export functions within the DLL that internally call malloc/free as needed. So that's why I'm puzzeld with the issue.

also, before using Boost, CRT never complained about any memory problem. It's just after using Boost in the EXE application (which is in debug mode), the problem started to show up when the application tears itself down. And it only complains about that Boost's parser class as corrupted.

I wonder if Boost does something internally that causes this issue