I am profiling an Objective C++ program and in the responsible caller it’s not showing the exact method that created the object nor the releasing point, it only shows “CA::Display::DisplayLink::dispatch(unsigned long long, unsigned long long)”
the program am profiling is a game using cocos2d and most classes are C++ .mm. I know that xcode doesn’t fully support Obj-C++ Is that the reason why instruments is not showing enough info??
P.S I am using Xcode 4.3
If the object itself is C++, use the Allocations instrument, click the “i” and try adjusting the configuration to “Identify C++ Objects.” If you’re using Leaks, I recommend instead using Allocations and Heapshot analysis. I find it much more powerful than the Leaks tool in most cases.
That said, the dispatch() method may be obscuring the information, and this may be independent of the C++; it may simply be a limitation of Instruments when diving into the dispatch(). This happens sometimes.
All that said, ObjC++ is not a good language to spread throughout a project. Write your low-level code in pure C++. Write your high-level code in pure ObjC. Use a thin glue layer of ObjC++ to tie them together. ObjC++ has many problems, from poor tool support to runtime performance issues compared to pure C++ or pure ObjC. It is glue; it is not substance.