> On Mar 16, 2015, at 4:47 PM, Rick Mann <[email protected]> wrote:
> 
>> otool -t -V APP > /tmp/longFileOfDisassembly
>> 
>> vi the file and look for _dsyrk_ instances, they should be in comments like 
>> ## symbol stub for _dsyrk_
>> 
>> scan backwards to find what routine you’re in, should be a couple of 
>> screenfuls up at most. 
>> 
>> Obviously better using a debug version of the code :)
> 
> I tried that. I get this:
> 
> $ otool -tV MyApp | edit
> otool(49911,0x7fff7f1cd300) malloc: *** error for object 0x6b2db0: pointer 
> being freed was not allocated
> *** set a breakpoint in malloc_error_break to debug

Are your command-line tools out of date with respect to your installed Xcode? 
Try using `xcrun otool` and similar for the other command-line tools you run.


> But it does generate a couple million lines of output before crashing. I can 
> find only one reference:
> 
> 00175308      f3c4e972        blx     0x5395f0 @ symbol stub for: _dsyrk_
> 
> But nothing more. There doesn't seem to be any debug info (despite this being 
> a debug build; the dSYM is separate, dunno how to incorporate that).

That is a call site. Look upwards in the disassembly for the nearest preceding 
symbol. If you are lucky then that symbol will be a useful one. If you are 
unlucky then that symbol will be a red herring because the real symbol was 
stripped.

otool will not read the matching dSYM file, but lldb will. Try this:
1. Place your app and your dSYM in the same directory
2. `xcrun dwarfdump -u /path/to/YourApp.app/YourApp` and `xcrun dwarfdump -u 
/path/to/YourApp.app.dSYM`. This will print UUIDs. Make sure the app and the 
dSYM match.
3. `xcrun lldb -arch arm64 /path/to/YourApp.app`. If your app is 32-bit then 
use `-arch armv7s` instead.
4. In lldb, `image list YourApp`. That should print YourApp's executable and 
its dSYM file.
5. In lldb, `x/i 0x00175308`. That should print the branch instruction that you 
found using otool.
6. In lldb, `image lookup -v -a 0x00175308`. That will print everything lldb 
knows about that address and the function it is in. If all has gone well then 
that will include function names, file names and line numbers, and any inlining 
involved.


-- 
Greg Parker     [email protected]     Runtime Wrangler



_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to