http://bugs.winehq.org/show_bug.cgi?id=21962
--- Comment #47 from Stefan Dösinger stefandoesinger@gmx.at 2010-04-05 14:07:22 --- H, You're on the right track, just a few changes:
* Don't use +d3d,d3d_draw this time, then you should be able to attach the entire log. You can use +tid, it doesn't make the log much larger as it doesn't add any messages on its own, just the thread ID to each message
* You can ignore surface.c, surface_gdi.c and volume.c, the surface and volume code doesn't (yet) intersect with the buffer code. It may do that later for d3d10 purposes.
* Print the buffer and the address in the ERRs, for example ERR("%p: setting allocatedMemory to %p\n", This, This->resource.allocatedMemory); Also print the NULL assignments for completeness.
Note that you don't have to be afraid to pass a NULL pointer to a %p format, it will just print "(nil)", e.g. "0xdeadbeef: setting allocatedMemory to (nil)".
Wrt setting heapMemory and allocatedMemory to NULL instead of 0: you are correct, but it is a minor point. NULL is defined as "(void *) 0". It doesn't even cause a integer-to-pointer conversion warning because gcc apparently special cases assining 0 to a pointer as ok.