Forum Xamarin.iOS

Announcement:

The Xamarin Forums have officially moved to the new Microsoft Q&A experience. Microsoft Q&A is the home for technical questions and answers at across all products at Microsoft now including Xamarin!

To create new threads and ask questions head over to Microsoft Q&A for .NET and get involved today.

How to set a breakpoint in VS for Mac for "set a breakpoint in malloc_error_break to debug" crashes?

TroyChardTroyChard CAMember ✭✭

Hi there,

I'm trying to convert a native cocoa app to Xamarin.Mac.

I'm getting a crash at one point and the stacktrace includes this message "set a breakpoint in malloc_error_break to debug"

Is there any way to do this in Visual Studio for Mac?

Here's a portion of the stacktrace

Chat(21463,0x7fffa1e0d340) malloc: *** error for object 0x111d3f1d0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Stacktrace:

  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) Foundation.NSObject.xamarin_release_managed_ref (intptr,Foundation.NSObject) [0x00008] in <044825bde4b4485bae4832110feb8d50>:0
  at Foundation.NSObject.ReleaseManagedRef () [0x00008] in /Users/builder/data/lanes/5489/c4240f3f/source/xamarin-macios/src/Foundation/NSObject2.cs:208
  at Foundation.NSObject/NSObject_Disposer.Drain (Foundation.NSObject) [0x00067] in /Users/builder/data/lanes/5489/c4240f3f/source/xamarin-macios/src/Foundation/NSObject2.cs:784
  at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) [0x00051] in <044825bde4b4485bae4832110feb8d50>:0
  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) AppKit.NSApplication.NSApplicationMain (int,string[]) [0x0005a] in <044825bde4b4485bae4832110feb8d50>:0
  at AppKit.NSApplication.Main (string[]) [0x00041] in /Users/builder/data/lanes/5489/c4240f3f/source/xamarin-macios/src/AppKit/NSApplication.cs:100
  at Chat.MainClass.Main (string[]) [0x00007] in /Users/troy.chard/Xamarin-macOS/Chat/Main.cs:10
  at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) [0x00051] in <f963aa642d2b41aea1fcc0fa68747c44>:0

Native stacktrace:

    0   Chat                                0x000000010bb68fe1 mono_handle_native_crash + 257
    1   libsystem_platform.dylib            0x00007fff68a3ef5a _sigtramp + 26
    2   ???                                 0x0000000000000000 0x0 + 0
    3   libsystem_c.dylib                   0x00007fff6886a30a abort + 127
    4   libsystem_malloc.dylib              0x00007fff68967866 free + 521
    5   Foundation                          0x00007fff43277398 -[NSConcreteData dealloc] + 60
    6   Chat                                0x000000010ba78ec6 xamarin_release_managed_ref + 182
    7   ???                                 0x00000001180ba1c1 0x0 + 4698382785
    8   ???                                 0x00000001180b9f83 0x0 + 4698382211
    9   Chat                                0x000000010bb7a2c8 mono_jit_runtime_invoke + 1288
    10  Chat                                0x000000010bc45048 do_runtime_invoke + 88
    11  Chat                                0x000000010bc44fc0 mono_runtime_invoke + 208
    12  Chat                                0x000000010bd5b31d _ZL32native_to_managed_trampoline_111P11objc_objectP13objc_selectorPP11_MonoMethodP8NSObjectj + 285
    13  Chat                                0x000000010bd5b1f5 +[__NSObject_Disposer drain:] + 53
    14  Foundation                          0x00007fff432ce985 __NSThreadPerformPerform + 334
    15  CoreFoundation                      0x00007fff411f5821 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    16  CoreFoundation                      0x00007fff412af4cc __CFRunLoopDoSource0 + 108
    17  CoreFoundation                      0x00007fff411d82c0 __CFRunLoopDoSources0 + 208
    18  CoreFoundation                      0x00007fff411d773d __CFRunLoopRun + 1293
    19  CoreFoundation                      0x00007fff411d6fa3 CFRunLoopRunSpecific + 483
    20  HIToolbox                           0x00007fff404f6866 RunCurrentEventLoopInMode + 286
    21  HIToolbox                           0x00007fff404f65d6 ReceiveNextEventCommon + 613
    22  HIToolbox                           0x00007fff404f6354 _BlockUntilNextEventMatchingListInModeWithFilter + 64
    23  AppKit                              0x00007fff3e7f3a23 _DPSNextEvent + 2085
    24  AppKit                              0x00007fff3ef88e6c -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3044
    25  AppKit                              0x00007fff3e7e8831 -[NSApplication run] + 764
    26  AppKit                              0x00007fff3e7b79d2 NSApplicationMain + 804
    27  ???                                 0x0000000111c859c8 0x0 + 4593310152
    28  ???                                 0x000000010df28043 0x0 + 4528963651
    29  Chat                                0x000000010bb7a2c8 mono_jit_runtime_invoke + 1288
    30  Chat                                0x000000010bc45048 do_runtime_invoke + 88
    31  Chat                                0x000000010bc48689 do_exec_main_checked + 137
    32  Chat                                0x000000010badfeff mono_jit_exec + 287
    33  Chat                                0x000000010bae278b mono_main + 9307
    34  Chat                                0x000000010ba83a3e xamarin_main + 1182
    35  Chat                                0x000000010ba84994 main + 36
    36  libdyld.dylib                       0x00007fff687be145 start + 1

Debug info from gdb:


(lldb) command source -s 0 '/tmp/mono-gdb-commands.Owb0tu'
Executing commands in '/tmp/mono-gdb-commands.Owb0tu'.
(lldb) process attach --pid 21463
Process 21463 stopped
* thread #1, name = 'tid_307', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
    frame #0: 0x00007fff6890e67a libsystem_kernel.dylib`__wait4 + 10
libsystem_kernel.dylib`__wait4:
->  0x7fff6890e67a <+10>: jae    0x7fff6890e684            ; <+20>
    0x7fff6890e67c <+12>: movq   %rax, %rdi
    0x7fff6890e67f <+15>: jmp    0x7fff68905791            ; cerror
    0x7fff6890e684 <+20>: retq   
Target 0: (Chat) stopped.

Best Answer

Answers

  • TroyChardTroyChard CAMember ✭✭

    Thanks Chris, ok let me try some of those things and see if i can isolate whatever's causing this one. Thanks again!

  • TroyChardTroyChard CAMember ✭✭

    Thanks again Chris!

    Your NSData hint let me zero in on the problem. Turns out I was using

    nsdataMember = NSData.FromBytesNoCopy(ptr, length);

    instead of

    nsdataMember = NSData.FromBytesNoCopy(ptr, length, /*freeWhenDone= */ false );

Sign In or Register to comment.