Strange: we don't see the RtlHeapAllocate
function. But then I remember that
the application (_impact.exe from the Xilinx ISE suite) uses the shsmp library
for memory allocation (
http://www.microquill.com/smartheap/sh_tspec.htm).
So our HeapAlloc get patched by the Microquill code, but probably
HeapValidate dose not get patched and things diverge.
Eric, can we do the memory validation perhaps in some other way then by
HeapValidate ?
several questions here:
- if your theory (about missing HeapValidate func) is right: then I
think that this memory manager is rather broken and should be fixed and
not Wine
- but on the other hand, how could you explain that it did work at some
point (ie didn't crash) and did it afterwards ? This doesn't seem too
logical to me. Perhaps the smartheap API interception mechanism isn't
that stable on Wine.
IMO, you should start looking at the interception code and see if it
puts something in place for HeapValidate, then we'll see what we could
do (one quickie is to use RtlValidateHeap instead of HeapValidate, but
that's *really* ugly).
A+