If you like doing it yourself there is always the possibility of overriding global new and delete operators (normal and array version) and possibly use some makro magic to include __FILE__ and __LINE__ in the calls inside of files where you expect errors (that needs 1 more operator for all variants), when doing a debug build. Then collect data in there and print out a log for calling wrong operator delete, deleting twice and remaining allocations at end of your program.
Though using some premade library would probably give you better results.