R16 memory leaks [SOLVED]
-
On 18/09/2014 at 14:03, xxxxxxxx wrote:
Originally posted by xxxxxxxx
Unfortunately there was code enabled in the leak detection that creates an exception instead of the intended output (which is useful for us when debugging, but not for you as 3rd party programmer). This exception needs symbol files for debugging that you don't have and can't download.
Thanx for reporting it - we'll fix that asap.
Was this code also enabled in R15?
@joebuck
Did you do anything but starting and closing Cinema 4D? Doing just that with a clean installation of
Cinema 4D R16.021 and compiled example project does not yield a memory leak here. -
On 18/09/2014 at 14:39, xxxxxxxx wrote:
Hi Niklas,
Originally posted by xxxxxxxx
Did you do anything but starting and closing Cinema 4D?
No. I only compiled and stopped the program. I will try a complete re-install R16 next and let you know what happens.
Thank you,
Joe Buck
-
On 19/09/2014 at 00:04, xxxxxxxx wrote:
Originally posted by xxxxxxxx
Originally posted by xxxxxxxx
Unfortunately there was code enabled in the leak detection that creates an exception instead of the intended output (which is useful for us when debugging, but not for you as 3rd party programmer). This exception needs symbol files for debugging that you don't have and can't download.
Thanx for reporting it - we'll fix that asap.
Was this code also enabled in R15? [...]
No.
Best regards,
Wilfried
-
On 19/09/2014 at 00:22, xxxxxxxx wrote:
Hi Wilfried and Niklas,
I just did a complete clean re-install of OS X Mavericks, Xcode and Cinema 4D with the same results. To be clear, I erased the startup drive with Disk Utility so the Mavericks installer did not try to save any of my data, and then installed the operating system(plus updates), Xcode and C4D R16(plus updates).
Here is the console output:
Application start : 09/19/14 at 01:40:28 Executable : 64 Bit Version / Build : 16.021 / RB111778 Debugger : available Memory model : debug Startup path : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16 Application path : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/CINEMA 4D.app Application executable : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/CINEMA 4D.app/Contents/MacOS/CINEMA 4D Resource path : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/resource Module path(s) : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules Temporary path : file:///var/folders/f5/79h1lxlj76d060mwqmdrh1_r0000gn/T Prefs path : file:///Users/joebuck/Library/Preferences/MAXON/CINEMA 4D R16_7B5EB4B8 Global Prefs path : file:///Users/joebuck/Library/Preferences/MAXON OS version : OS X 10.9.5 Processor : 8x Intel Core i7-4850HQ CPU Computer name : Jody's MacBook Pro Thread Count : 8 Cpu Speed (MHz) : 2300.000 Application Type : Modular Command line arguments : "-g_alloc=debug" "-NSDocumentRevisionsDebugMode" "YES" Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/c4dplugin.xlib with module(s) net.maxon.c4d.c4dplugin Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/crashhandler.module.xlib with module(s) net.maxon.crashhandler Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/crypt.module.xlib with module(s) net.maxon.crypt Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/image.module.xlib with module(s) net.maxon.image Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/mesh.module.xlib with module(s) net.maxon.mesh Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/misc.module.xlib with module(s) net.maxon.misc Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/network.module.xlib with module(s) net.maxon.network Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/triangulation.module.xlib with module(s) net.maxon.triangulation 2014-09-19 01:40:29.227 CINEMA 4D[1219:303] setPresentationOptions called with NSApplicationPresentationFullScreen when there is no visible fullscreen window; this call will be ignored. CrashHandler not installed Bonjour found: 522.92 Memory Leaks Detected: /perforce_buildsystem_osx/c4d_mx_buildsystem_osx/release/16.0/frameworks/kernel.framework/source/implementation/xstring_impl.cpp (1094) : Memory leak of 15 bytes () at 0x1097920e0 1 blocks not freed
Perhaps I could send you the Xcode project I get from the install, or you could send me the Xcode project that produces no leaks?
Please let me know if there is anything else I can do to help troubleshoot this problem.
Thanks again for your time and help,
Joe Buck
-
On 08/10/2014 at 09:49, xxxxxxxx wrote:
Originally posted by xxxxxxxx
[...]
Please let me know if there is anything else I can do to help troubleshoot this problem.
Thanks again for your time and help,
Joe BuckPlease check 16.027. It fixed the exception issue and gives you a good indication of the reason for your memory leak.
Best regards,
Wilfried
-
On 08/10/2014 at 11:45, xxxxxxxx wrote:
Hi Wilfried,
Thanks for staying on top of this for me!
Xcode is now reporting memory leaks for me in the R16 project.I created a memory leak in MouseInput SDK Liquid Painter. Here is the output:
Application start : 10/08/14 at 12:40:38 Executable : 64 Bit Version / Build : 16.027 / RB113727 Debugger : available Memory model : debug Startup path : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16 Application path : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/CINEMA 4D.app Application executable : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/CINEMA 4D.app/Contents/MacOS/CINEMA 4D Resource path : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/resource Module path(s) : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules Temporary path : file:///var/folders/c2/txkqll0x6332gf7zzb8srnqr0000gn/T Prefs path : file:///Users/joebuck/Library/Preferences/MAXON/CINEMA 4D R16_7B5EB4B8 Global Prefs path : file:///Users/joebuck/Library/Preferences/MAXON OS version : OS X 10.9.4 Processor : 8x Intel Core i7-4850HQ CPU Computer name : Joe's MacBook Pro Thread Count : 8 Cpu Speed (MHz) : 2300.000 Application Type : Modular Command line arguments : "-g_alloc=debug" "-NSDocumentRevisionsDebugMode" "YES" Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/c4dplugin.xlib with module(s) net.maxon.c4d.c4dplugin Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/crashhandler.module.xlib with module(s) net.maxon.crashhandler Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/crypt.module.xlib with module(s) net.maxon.crypt Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/image.module.xlib with module(s) net.maxon.image Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/mesh.module.xlib with module(s) net.maxon.mesh Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/misc.module.xlib with module(s) net.maxon.misc Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/network.module.xlib with module(s) net.maxon.network Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/triangulation.module.xlib with module(s) net.maxon.triangulation 2014-10-08 12:40:38.640 CINEMA 4D[1648:303] setPresentationOptions called with NSApplicationPresentationFullScreen when there is no visible fullscreen window; this call will be ignored. CrashHandler not installed Bonjour found: 522.92 Memory Leaks Detected: /Users/joebuck/MAXON_dev/CINEMA 4D R16/plugins/examples/cinema4dsdk/source/tool/liquidtool.cpp (45) : 4 Memory leaks of 4 bytes (, first leak at 0x11fd67460) /perforce_buildsystem_osx/c4d_mx_buildsystem_osx/release/16.0/frameworks/kernel.framework/source/implementation/xstring_impl.cpp (1094) : Memory leak of 15 bytes () at 0x10ba870e0 2 blocks not freed
I am however still getting the same unexpected leak message:
/perforce_buildsystem_osx/c4d_mx_buildsystem_osx/release/16.0/frameworks/kernel.framework/source/implementation/xstring_impl.cpp (1094) : Memory leak of 15 bytes () at 0x10ba870e0
I do not understand this leak because I am a c++ amateur and I can not find the file on my system. Do you know where this file is and what it is for?
Also, this leak is persistent with or without the leak I created.
I would also like to note that I have completely re-installed OSX, Xcode and C4D. Nicklas also sent me his copy of the SDK project and I get the same results with that.
The R15 memory leak detection works as expected on this system.
For R15 I followed the instructions in the docs to set memory leak detection. Perhaps I am missing an Xcode project setting somewhere for R16. Do you know if the Xcode project set up for memory leak detection is different between R15 and R16?
Again, I really appreciate your help.
Thank you,
Joe Buck
-
On 09/10/2014 at 07:55, xxxxxxxx wrote:
Originally posted by xxxxxxxx
Hi Wilfried,
Thanks for staying on top of this for me! [...]
Memory Leaks Detected:/Users/joebuck/MAXON_dev/CINEMA 4D R16/plugins/examples/cinema4dsdk/source/tool/liquidtool.cpp (45) : 4 Memory leaks of 4 bytes (, first leak at 0x11fd67460)
This is the important line as it points to the original problem - there 's a leak int the liquid painter example (and as the sample is from R9 or older, its there for quite some time) and this one - at least on my machine - can be triggered on OS X (only), if you open this example dialog and quit the app via the closer - if you use the "File -> Quit" menu it doesn't happen. If you close the document before closing or switch to a different tool it doesn't happen either...
Originally posted by xxxxxxxx
/perforce_buildsystem_osx/c4d_mx_buildsystem_osx/release/16.0/frameworks/kernel.framework/source/implementation/xstring_impl.cpp (1094) : Memory leak of 15 bytes () at 0x10ba870e0
I do not understand this leak because I am a c++ amateur and I can not find the file on my system. Do you know where this file is and what it is for?
[...]This file contains the string implementation and due to the leak in the paint tool a leak is detected in the strings too (when quitting the app). As this is our internal source code, you can't access it.
One note regarding your command line: You don't have to add the "g_alloc=debug" argument when you're working with a debug version of your plugin - that is done automatically (in R16). In release mode you can switch the memory allocation to the debug allocator - using this argument - for extended error checking though; the price of course is an increased amount of memory needed for additional debug info and check patterns as well as a speed hit.
By default the release mode of your plugin will use the faster release memory allocator of course.
Best regards,
Wilfried
-
On 09/10/2014 at 08:36, xxxxxxxx wrote:
Hi Wilfried. I have to work for a client today. I will work on this more tomorrow and post what I have figured out.
Thanks again for your time.
Joe Buck
-
On 21/10/2014 at 08:28, xxxxxxxx wrote:
Hi Joe Buck,
We'd like to know if you've had time to work on this issue? If so, do you still need help?
Thanks,
Joey Gaspe
SDK Support -
On 21/10/2014 at 14:48, xxxxxxxx wrote:
Hi Joey,
I picked up a few motion graphics jobs and have not had a chance to get into it. I will probably have some time tomorrow to test things out. I
Thank you,
Joe Buck
-
On 22/10/2014 at 13:51, xxxxxxxx wrote:
Hi Joey and Wilfried,
Thanks again for your continued support on this issue.
Originally posted by xxxxxxxx
there 's a leak int the liquid painter example
So I deleted all of the source files except main.cpp. The Xcode project now contains one source file:
// main.cpp #include "c4d.h" Bool PluginStart(void) { Int32* leak = NewObj(Int32); *leak = 4444; return true; } void PluginEnd(void) { } Bool PluginMessage(Int32 id, void* data) { return false; }
Screen grabs of the project's Scheme:
Console output after using "File -> Quit":
Application start : 10/22/14 at 15:21:24 Executable : 64 Bit Version / Build : 16.027 / RB113727 Debugger : available Memory model : debug Startup path : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16 Application path : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/CINEMA 4D.app Application executable : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/CINEMA 4D.app/Contents/MacOS/CINEMA 4D Resource path : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/resource Module path(s) : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules Temporary path : file:///var/folders/c2/txkqll0x6332gf7zzb8srnqr0000gn/T Prefs path : file:///Users/joebuck/Library/Preferences/MAXON/CINEMA 4D R16_7B5EB4B8 Global Prefs path : file:///Users/joebuck/Library/Preferences/MAXON OS version : OS X 10.9.4 Processor : 8x Intel Core i7-4850HQ CPU Computer name : Joe's MacBook Pro Thread Count : 8 Cpu Speed (MHz) : 2300.000 Application Type : Modular Command line arguments : "-g_alloc=debug" "-NSDocumentRevisionsDebugMode" "YES" Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/c4dplugin.xlib with module(s) net.maxon.c4d.c4dplugin Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/crashhandler.module.xlib with module(s) net.maxon.crashhandler Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/crypt.module.xlib with module(s) net.maxon.crypt Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/image.module.xlib with module(s) net.maxon.image Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/mesh.module.xlib with module(s) net.maxon.mesh Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/misc.module.xlib with module(s) net.maxon.misc Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/network.module.xlib with module(s) net.maxon.network Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/triangulation.module.xlib with module(s) net.maxon.triangulation 2014-10-22 15:21:24.210 CINEMA 4D[1032:303] setPresentationOptions called with NSApplicationPresentationFullScreen when there is no visible fullscreen window; this call will be ignored. CrashHandler not installed Bonjour found: 522.92 Memory Leaks Detected: /Users/joebuck/MAXON_dev/CINEMA 4D R16/plugins/examples/cinema4dsdk/source/main.cpp (6) : Memory leak of 4 bytes () at 0x11dda6820 /perforce_buildsystem_osx/c4d_mx_buildsystem_osx/release/16.0/frameworks/kernel.framework/source/implementation/xstring_impl.cpp (1094) : Memory leak of 15 bytes () at 0x10a1850e0 2 blocks not freed
Revise main.cpp removing the memory leak:
// main.cpp #include "c4d.h" Bool PluginStart(void) { return true; } void PluginEnd(void) { } Bool PluginMessage(Int32 id, void* data) { return false; }
The Scheme is the same. Here is the console output using "File -> Quit":
Application start : 10/22/14 at 15:24:09 Executable : 64 Bit Version / Build : 16.027 / RB113727 Debugger : available Memory model : debug Startup path : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16 Application path : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/CINEMA 4D.app Application executable : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/CINEMA 4D.app/Contents/MacOS/CINEMA 4D Resource path : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/resource Module path(s) : file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules Temporary path : file:///var/folders/c2/txkqll0x6332gf7zzb8srnqr0000gn/T Prefs path : file:///Users/joebuck/Library/Preferences/MAXON/CINEMA 4D R16_7B5EB4B8 Global Prefs path : file:///Users/joebuck/Library/Preferences/MAXON OS version : OS X 10.9.4 Processor : 8x Intel Core i7-4850HQ CPU Computer name : Joe's MacBook Pro Thread Count : 8 Cpu Speed (MHz) : 2300.000 Application Type : Modular Command line arguments : "-g_alloc=debug" "-NSDocumentRevisionsDebugMode" "YES" Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/c4dplugin.xlib with module(s) net.maxon.c4d.c4dplugin Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/crashhandler.module.xlib with module(s) net.maxon.crashhandler Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/crypt.module.xlib with module(s) net.maxon.crypt Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/image.module.xlib with module(s) net.maxon.image Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/mesh.module.xlib with module(s) net.maxon.mesh Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/misc.module.xlib with module(s) net.maxon.misc Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/network.module.xlib with module(s) net.maxon.network Loading file:///Users/joebuck/MAXON_dev/CINEMA 4D R16/modules/triangulation.module.xlib with module(s) net.maxon.triangulation 2014-10-22 15:24:09.901 CINEMA 4D[1050:303] setPresentationOptions called with NSApplicationPresentationFullScreen when there is no visible fullscreen window; this call will be ignored. CrashHandler not installed Bonjour found: 522.92 Memory Leaks Detected: /perforce_buildsystem_osx/c4d_mx_buildsystem_osx/release/16.0/frameworks/kernel.framework/source/implementation/xstring_impl.cpp (1094) : Memory leak of 15 bytes () at 0x108c280e0 1 blocks not freed
There is still a memory leak being reported.
As I said before, I'm a complete c++ amateur, so I'm probably missing a configuration in my Xcode project that would be a given for you guys. Please note that R15 memory leak detection is working as expected on this system.
Please let me know if I can provide any more information to help troubleshoot this problem.
Thanks again,
Joe Buck
-
On 23/10/2014 at 10:07, xxxxxxxx wrote:
Originally posted by xxxxxxxx
Hi Joey and Wilfried,
Thanks again for your continued support on this issue. [...] There is still a memory leak being reported.
As I said before, I'm a complete c++ amateur, so I'm probably missing a configuration in my Xcode project that would be a given for you guys. Please note that R15 memory leak detection is working as expected on this system.
Please let me know if I can provide any more information to help troubleshoot this problem.
Thanks again,
Joe BuckPlease use "g_alloc=debug" when passing that argument in Xcode, not "-g_alloc=debug" as you did.
Best regards,
Wilfried
-
On 23/10/2014 at 10:35, xxxxxxxx wrote:
Hey Wilfried!
Originally posted by xxxxxxxx
Please use "g_alloc=debug" when passing that argument in Xcode, not "-g_alloc=debug" as you did.
Works as expected. Problem solved.
Thanks for your time and help,
Joe Buck