[Vm-dev] How to trace alien freed on vm side?

Esteban Lorenzano estebanlm at gmail.com
Tue Mar 1 20:51:30 UTC 2011


Hi, 
I don't know if this is the right list... but as this is very low level, maybe somebody knows what is happening... :)
This is the problem (with a mac): I'm creating an external NSTableView with a proxy who handles all data source issues (yes, this is for mars).
The list looks very cool and fast, but after some time, the callback crashes the vm because it is trying to execute a method in an alien who's address is really incorrect. Let me explain a little more: I always receive a "column" parameter... as is always the same column, the address should be always the same  too. Let's say, 471403648... and then, suddenly, the column address is some 22123456789 (no matter the number, just point that is really different from the column). Of course, as the address points to nowhere, when I try to execute a method invocation with that address, I get an EXC_BAD_ACCESS, and crash. 
An hypothesis is that aliens are being freed, because no "retain" or something (anyway, I tried retaining all objc objects, and nothing changes). Also, as aliens are accessed by it's pointer address, NSZombieEnabled  (to trace invocations on released objects) also does not works. So... I don't know what is happening :(

So, any idea how can I trace what happens with an alien, in the vm side?

Cheers,
Esteban

pd: yes, this is very strange, and maybe incompressible. This reflects my poor english, and even worst, my poor understanding of the problem I'm trying to solve :(
ppd: yes, today I tried randomly some vm problems... and failed to solve any of them... maybe tomorrow will be a better day :((


More information about the Vm-dev mailing list