Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mono crashes #8588

Closed
Rombersoft opened this issue May 5, 2018 · 7 comments
Closed

Mono crashes #8588

Rombersoft opened this issue May 5, 2018 · 7 comments

Comments

@Rombersoft
Copy link

Rombersoft commented May 5, 2018

I have C library for working with this pos_terminal https://www.verifone.com/en/us/devices/countertops-pin-pads/vx-520

I use

[DllImport("libpos.so.1.24.0", EntryPoint = "pos_open", CallingConvention = CallingConvention.Cdecl)]
private extern static Boolean Open(ref IntPtr handle_p, string name, string log);

[DllImport("libpos.so.1.24.0", EntryPoint = "pos_set", CallingConvention = CallingConvention.Cdecl)]
private extern static Boolean Set(ref IntPtr handle_p, string param, string val);

And my application crashes after second method calling

Steps to Reproduce

Project is here https://www.dropbox.com/s/8l0czx4091y1usj/BugZilla.tar.gz?dl=0
Dependencies and manuals are here https://www.dropbox.com/s/ip59ivgkkaid7st/posapi-centos-x64_1.24.tar.bz2?dl=0

Current Behavior

Expected Behavior

On which platforms did you notice this

[ ] macOS
[*] Linux
[ ] Windows

Version Used:
Debian 9 Stretch

Stacktrace

myName@BABYLON-5:/media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug$ sudo mono --debug ConsoleApplication.exe 
Stacktrace:

  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) PosTerminal.CommandWrapper.Set (intptr&,string,string) [0x0001f] in <9b3bfb8fdc44474d831a941f1e5698ec>:0
  at PosTerminal.CommandWrapper.SetParam (string,string) [0x00004] in /media/myName/Documents/Projects/NewBasket/PosTerminal/CommandWrapper.cs:168
  at ConsoleApplication.MainClass.Main (string[]) [0x00022] in /media/myName/Documents/Projects/NewBasket/ConsoleApplication/Program.cs:15
  at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) [0x00051] in <f3c7ded2422f4a6e8752f69fae0a14d1>:0
/proc/self/maps:
416f1000-41701000 rwxp 00000000 00:00 0 
4190b000-4191b000 rwxp 00000000 00:00 0 
56458a7ba000-56458abdb000 r-xp 00000000 08:18 2492164                    /usr/bin/mono-sgen
56458addb000-56458ade2000 r--p 00421000 08:18 2492164                    /usr/bin/mono-sgen
56458ade2000-56458ade6000 rw-p 00428000 08:18 2492164                    /usr/bin/mono-sgen
56458ade6000-56458adfd000 rw-p 00000000 00:00 0 
56458c985000-56458ca41000 rw-p 00000000 00:00 0                          [heap]
7f7284000000-7f7284021000 rw-p 00000000 00:00 0 
7f7284021000-7f7288000000 ---p 00000000 00:00 0 
7f7288cfa000-7f7288e6c000 r-xp 00000000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f7288e6c000-7f728906c000 ---p 00172000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f728906c000-7f7289076000 r--p 00172000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f7289076000-7f7289078000 rw-p 0017c000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f7289078000-7f728907c000 rw-p 00000000 00:00 0 
7f728907c000-7f72890a2000 r-xp 00000000 08:15 379958                     /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
7f72890a2000-7f72892a2000 ---p 00026000 08:15 379958                     /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
7f72892a2000-7f72892a4000 rw-p 00026000 08:15 379958                     /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
7f72892a4000-7f72892ad000 ---p 00000000 00:00 0 
7f72892ad000-7f72894a5000 rw-p 00000000 00:00 0 
7f72894a5000-7f7289a0d000 r-xp 00000000 08:18 2892802                    /usr/lib/mono/aot-cache/amd64/mscorlib.dll.so
7f7289a0d000-7f7289c0c000 ---p 00568000 08:18 2892802                    /usr/lib/mono/aot-cache/amd64/mscorlib.dll.so
7f7289c0c000-7f7289c0d000 r--p 00567000 08:18 2892802                    /usr/lib/mono/aot-cache/amd64/mscorlib.dll.so
7f7289c0d000-7f7289c0e000 rw-p 00568000 08:18 2892802                    /usr/lib/mono/aot-cache/amd64/mscorlib.dll.so
7f7289c0e000-7f7289c34000 rw-p 00000000 00:00 0 
7f7289c34000-7f7289fff000 r--p 00000000 08:18 2891934                    /usr/lib/mono/4.5/mscorlib.dll
7f7289fff000-7f728afff000 rw-p 00000000 00:00 0 
7f728afff000-7f728b000000 ---p 00000000 00:00 0 
7f728b000000-7f728bc00000 rw-p 00000000 00:00 0 
7f728bc26000-7f728bcd8000 rw-p 00000000 00:00 0 
7f728bcd9000-7f728bd0b000 rw-p 00000000 00:00 0 
7f728bd0b000-7f728bd3c000 r--p 00000000 08:18 3952192                    /usr/share/locale/uk/LC_MESSAGES/libc.mo
7f728bd3c000-7f728bd3d000 rw-p 00000000 00:00 0 
7f728bd3d000-7f728bd9c000 ---p 00000000 00:00 0 
7f728bd9c000-7f728bf31000 r-xp 00000000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f728bf31000-7f728c131000 ---p 00195000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f728c131000-7f728c135000 r--p 00195000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f728c135000-7f728c137000 rw-p 00199000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f728c137000-7f728c13b000 rw-p 00000000 00:00 0 
7f728c13b000-7f728c151000 r-xp 00000000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f728c151000-7f728c350000 ---p 00016000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f728c350000-7f728c351000 r--p 00015000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f728c351000-7f728c352000 rw-p 00016000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f728c352000-7f728c36a000 r-xp 00000000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f728c36a000-7f728c569000 ---p 00018000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f728c569000-7f728c56a000 r--p 00017000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f728c56a000-7f728c56b000 rw-p 00018000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f728c56b000-7f728c56f000 rw-p 00000000 00:00 0 
7f728c56f000-7f728c572000 r-xp 00000000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f728c572000-7f728c771000 ---p 00003000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f728c771000-7f728c772000 r--p 00002000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f728c772000-7f728c773000 rw-p 00003000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f728c773000-7f728c77a000 r-xp 00000000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f728c77a000-7f728c979000 ---p 00007000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f728c979000-7f728c97a000 r--p 00006000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f728c97a000-7f728c97b000 rw-p 00007000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f728c97b000-7f728ca7e000 r-xp 00000000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f728ca7e000-7f728cc7d000 ---p 00103000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f728cc7d000-7f728cc7e000 r--p 00102000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f728cc7e000-7f728cc7f000 rw-p 00103000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f728cc7f000-7f728cca2000 r-xp 00000000 08:18 4588365                    /lib/x86_64-linux-gnu/ld-2.24.so
7f728cca3000-7f728cce4000 rw-p 00000000 00:00 0 
7f728cce4000-7f728ce76000 r--p 00000000 08:18 2758121                    /usr/lib/locale/locale-archive
7f728ce76000-7f728ce7b000 rw-p 00000000 00:00 0 
7f728ce7c000-7f728ce7d000 r--p 00000000 08:15 866                        /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/PosTerminal.pdb
7f728ce7d000-7f728ce80000 r--p 00000000 08:15 865                        /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/PosTerminal.dll
7f728ce80000-7f728ce81000 r--p 00000000 08:15 869                        /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/ConsoleApplication.pdb
7f728ce81000-7f728ce89000 rw-p 00000000 00:00 0 
7f728ce89000-7f728ce90000 r--s 00000000 08:18 2894135                    /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f728ce90000-7f728ce95000 rw-p 00000000 00:00 0 
7f728ce95000-7f728ce97000 r--p 00000000 08:15 868                        /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/ConsoleApplication.exe
7f728ce97000-7f728ce9e000 rw-p 00000000 00:00 0 
7f728ce9e000-7f728ce9f000 rw-s 00000000 00:13 300913                     /dev/shm/mono.4723
7f728ce9f000-7f728cea2000 rw-p 00000000 00:00 0 
7f728cea2000-7f728cea3000 r--p 00023000 08:18 4588365                    /lib/x86_64-linux-gnu/ld-2.24.so
7f728cea3000-7f728cea4000 rw-p 00024000 08:18 4588365                    /lib/x86_64-linux-gnu/ld-2.24.so
7f728cea4000-7f728cea5000 rw-p 00000000 00:00 0 
7ffe07899000-7ffe078a1000 ---p 00000000 00:00 0 
7ffe08077000-7ffe08098000 rw-p 00000000 00:00 0                          [stack]
7ffe080e0000-7ffe080e2000 r--p 00000000 00:00 0                          [vvar]
7ffe080e2000-7ffe080e4000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

Native stacktrace:

	mono(+0xcb3ac) [0x56458a8853ac]
	mono(+0x160a10) [0x56458a91aa10]
	/media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0(_ZN2cp7storage3setEPKcS2_b+0x50) [0x7f7289091990]

Debug info from gdb:

[New LWP 4724]
[New LWP 4725]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f728c362b3a in __waitpid (pid=pid@entry=4727, stat_loc=stat_loc@entry=0x7ffe080947fc, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
29	../sysdeps/unix/sysv/linux/waitpid.c: Немає такого файла або каталогу.
  Id   Target Id         Frame 
* 1    Thread 0x7f728ce76740 (LWP 4723) "mono" 0x00007f728c362b3a in __waitpid (pid=pid@entry=4727, stat_loc=stat_loc@entry=0x7ffe080947fc, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
  2    Thread 0x7f728b7ff700 (LWP 4724) "SGen worker" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  3    Thread 0x7f72894a4700 (LWP 4725) "Finalizer" 0x00007f728c361536 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=0, futex_word=0x56458adeb9a0 <finalizer_sem>) at ../sysdeps/unix/sysv/linux/futex-internal.h:205

Thread 3 (Thread 0x7f72894a4700 (LWP 4725)):
#0  0x00007f728c361536 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=0, futex_word=0x56458adeb9a0 <finalizer_sem>) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x56458adeb9a0 <finalizer_sem>, abstime=0x0) at sem_waitcommon.c:111
#2  0x00007f728c3615e4 in __new_sem_wait_slow (sem=0x56458adeb9a0 <finalizer_sem>, abstime=0x0) at sem_waitcommon.c:181
#3  0x00007f728c361679 in __new_sem_wait (sem=sem@entry=0x56458adeb9a0 <finalizer_sem>) at sem_wait.c:29
#4  0x000056458aa35932 in mono_os_sem_wait (flags=MONO_SEM_FLAGS_ALERTABLE, sem=0x56458adeb9a0 <finalizer_sem>) at ../../mono/utils/mono-os-semaphore.h:209
#5  mono_coop_sem_wait (flags=MONO_SEM_FLAGS_ALERTABLE, sem=0x56458adeb9a0 <finalizer_sem>) at ../../mono/utils/mono-coop-semaphore.h:43
#6  finalizer_thread (unused=unused@entry=0x0) at gc.c:852
#7  0x000056458a9f451c in start_wrapper_internal (stack_ptr=<optimized out>, start_info=0x0) at threads.c:1012
#8  start_wrapper (data=0x56458c9e8440) at threads.c:1072
#9  0x00007f728c359494 in start_thread (arg=0x7f72894a4700) at pthread_create.c:333
#10 0x00007f728be84acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Thread 2 (Thread 0x7f728b7ff700 (LWP 4724)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x000056458aa92c4b in mono_os_cond_wait (mutex=0x56458adfa860 <lock>, cond=0x56458adfa820 <work_cond>) at ../../mono/utils/mono-os-mutex.h:173
#2  get_work (job=<synthetic pointer>, do_idle=<synthetic pointer>, work_context=<synthetic pointer>, worker_index=0) at sgen-thread-pool.c:165
#3  thread_func (data=<optimized out>) at sgen-thread-pool.c:196
#4  0x00007f728c359494 in start_thread (arg=0x7f728b7ff700) at pthread_create.c:333
#5  0x00007f728be84acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Thread 1 (Thread 0x7f728ce76740 (LWP 4723)):
#0  0x00007f728c362b3a in __waitpid (pid=pid@entry=4727, stat_loc=stat_loc@entry=0x7ffe080947fc, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
#1  0x000056458a885490 in mono_handle_native_crash (signal=signal@entry=0x56458aabd824 "SIGSEGV", ctx=ctx@entry=0x0, info=info@entry=0x0) at mini-exceptions.c:2830
#2  0x000056458a91aa10 in altstack_handle_and_restore (ctx=0x7ffe08095330, obj=0x0, stack_ovf=0) at exceptions-amd64.c:849
#3  0x00007f7289091990 in cp::storage::set(char const*, char const*, bool) () from /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
#4  0x0000000000000000 in ?? ()

=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

Перервано

https://bugzilla.xamarin.com/show_bug.cgi?id=46511

@jaykrell
Copy link
Contributor

jaykrell commented May 5, 2018

Can the files be submited differently to github, i.e. w/o a dropbox login?
Can you put them in a github repository? In source form?

@jpbruyere
Copy link
Contributor

jpbruyere commented May 5, 2018

The first param of pos_open is void**, so your pInvoke is correct, but for the other functions using the returned handle the c signature of the first param is void*.
example:

[DllImport("libpos.so.1.24.0", EntryPoint = "pos_set", CallingConvention = CallingConvention.Cdecl)]
        private extern static ```Boolean Set(ref IntPtr handle_p, string param, string val);

has to be replaced by

[DllImport("libpos.so.1.24.0", EntryPoint = "pos_set", CallingConvention = CallingConvention.Cdecl)]
        private extern static Boolean Set(IntPtr handle_p, string param, string val);

(remove the ref attribute)

@Rombersoft
Copy link
Author

I've filled project to git here https://github.com/Rombersoft/pos_terminal

@Rombersoft Rombersoft reopened this May 8, 2018
@Rombersoft
Copy link
Author

Rombersoft commented May 8, 2018

There is such method on C lang

bool pos_get_first(POS_HANDLE handle, char *param, int param_size,
char *val, int val_size);

Is right PInvoke?

[DllImport("libpos.so.1.24.0", EntryPoint = "pos_get_first", CallingConvention = CallingConvention.Cdecl)]
        private extern static Boolean GetFirst(IntPtr handle_p, string param, Int32 paramSize, string val, Int32 valSize);

because I get next Error

*** Error in `/usr/bin/mono': free(): invalid next size (fast): 0x000055c1c4103c40 ***

======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x70bfb)[0x7f5bbbeb2bfb]
/lib/x86_64-linux-gnu/libc.so.6(+0x76fc6)[0x7f5bbbeb8fc6]
/lib/x86_64-linux-gnu/libc.so.6(+0x7780e)[0x7f5bbbeb980e]
[0x406c1f50]
======= Memory map: ========
406bf000-406ff000 rwxp 00000000 00:00 0 
418fd000-4190d000 rwxp 00000000 00:00 0 
55c1c3678000-55c1c3a99000 r-xp 00000000 08:18 2492164                    /usr/bin/mono-sgen
55c1c3c99000-55c1c3ca0000 r--p 00421000 08:18 2492164                    /usr/bin/mono-sgen
55c1c3ca0000-55c1c3ca4000 rw-p 00428000 08:18 2492164                    /usr/bin/mono-sgen
55c1c3ca4000-55c1c3cbb000 rw-p 00000000 00:00 0 
55c1c3f9f000-55c1c4144000 rw-p 00000000 00:00 0                          [heap]
7f5bac000000-7f5bac02a000 rw-p 00000000 00:00 0 
7f5bac02a000-7f5bb0000000 ---p 00000000 00:00 0 
7f5bb0000000-7f5bb0021000 rw-p 00000000 00:00 0 
7f5bb0021000-7f5bb4000000 ---p 00000000 00:00 0 
7f5bb4000000-7f5bb4021000 rw-p 00000000 00:00 0 
7f5bb4021000-7f5bb8000000 ---p 00000000 00:00 0 
7f5bb9085000-7f5bb9087000 r-xp 00000000 08:18 2894038                    /usr/lib/x86_64-linux-gnu/gconv/IBM866.so
7f5bb9087000-7f5bb9286000 ---p 00002000 08:18 2894038                    /usr/lib/x86_64-linux-gnu/gconv/IBM866.so
7f5bb9286000-7f5bb9287000 r--p 00001000 08:18 2894038                    /usr/lib/x86_64-linux-gnu/gconv/IBM866.so
7f5bb9287000-7f5bb9288000 rw-p 00002000 08:18 2894038                    /usr/lib/x86_64-linux-gnu/gconv/IBM866.so
7f5bb9288000-7f5bb93fa000 r-xp 00000000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f5bb93fa000-7f5bb95fa000 ---p 00172000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f5bb95fa000-7f5bb9604000 r--p 00172000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f5bb9604000-7f5bb9606000 rw-p 0017c000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f5bb9606000-7f5bb960a000 rw-p 00000000 00:00 0 
7f5bb960a000-7f5bb9630000 r-xp 00000000 08:15 379958                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
7f5bb9630000-7f5bb9830000 ---p 00026000 08:15 379958                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
7f5bb9830000-7f5bb9832000 rw-p 00026000 08:15 379958                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
7f5bb9832000-7f5bb983b000 ---p 00000000 00:00 0 
7f5bb983b000-7f5bb9a33000 rw-p 00000000 00:00 0 
7f5bb9a33000-7f5bb9a3c000 ---p 00000000 00:00 0 
7f5bb9a3c000-7f5bb9c34000 rw-p 00000000 00:00 0 
7f5bb9c34000-7f5bb9fff000 r--p 00000000 08:18 2891934                    /usr/lib/mono/4.5/mscorlib.dll
7f5bb9fff000-7f5bbafff000 rw-p 00000000 00:00 0 
7f5bbafff000-7f5bbb000000 ---p 00000000 00:00 0 
7f5bbb000000-7f5bbbc00000 rw-p 00000000 00:00 0 
7f5bbbd2d000-7f5bbbd30000 r--p 00000000 08:15 483042                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/PosTerminal.dll
7f5bbbd30000-7f5bbbdb1000 rw-p 00000000 00:00 0 
7f5bbbdb1000-7f5bbbde2000 r--p 00000000 08:18 3952192                    /usr/share/locale/uk/LC_MESSAGES/libc.mo
7f5bbbde2000-7f5bbbde3000 rw-p 00000000 00:00 0 
7f5bbbde3000-7f5bbbe42000 ---p 00000000 00:00 0 
7f5bbbe42000-7f5bbbfd7000 r-xp 00000000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f5bbbfd7000-7f5bbc1d7000 ---p 00195000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f5bbc1d7000-7f5bbc1db000 r--p 00195000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f5bbc1db000-7f5bbc1dd000 rw-p 00199000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f5bbc1dd000-7f5bbc1e1000 rw-p 00000000 00:00 0 
7f5bbc1e1000-7f5bbc1f7000 r-xp 00000000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f5bbc1f7000-7f5bbc3f6000 ---p 00016000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f5bbc3f6000-7f5bbc3f7000 r--p 00015000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f5bbc3f7000-7f5bbc3f8000 rw-p 00016000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f5bbc3f8000-7f5bbc410000 r-xp 00000000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f5bbc410000-7f5bbc60f000 ---p 00018000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f5bbc60f000-7f5bbc610000 r--p 00017000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f5bbc610000-7f5bbc611000 rw-p 00018000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f5bbc611000-7f5bbc615000 rw-p 00000000 00:00 0 
7f5bbc615000-7f5bbc618000 r-xp 00000000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f5bbc618000-7f5bbc817000 ---p 00003000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f5bbc817000-7f5bbc818000 r--p 00002000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f5bbc818000-7f5bbc819000 rw-p 00003000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f5bbc819000-7f5bbc820000 r-xp 00000000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f5bbc820000-7f5bbca1f000 ---p 00007000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f5bbca1f000-7f5bbca20000 r--p 00006000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f5bbca20000-7f5bbca21000 rw-p 00007000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f5bbca21000-7f5bbcb24000 r-xp 00000000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f5bbcb24000-7f5bbcd23000 ---p 00103000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f5bbcd23000-7f5bbcd24000 r--p 00102000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f5bbcd24000-7f5bbcd25000 rw-p 00103000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f5bbcd25000-7f5bbcd48000 r-xp 00000000 08:18 4588365                    /lib/x86_64-linux-gnu/ld-2.24.so
7f5bbcd48000-7f5bbcd8a000 rw-p 00000000 00:00 0 
7f5bbcd8a000-7f5bbcf1c000 r--p 00000000 08:18 2758121                    /usr/lib/locale/locale-archive
7f5bbcf1c000-7f5bbcf21000 rw-p 00000000 00:00 0 
7f5bbcf21000-7f5bbcf22000 r--p 00000000 08:15 483045                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/PosTerminal.pdb
7f5bbcf22000-7f5bbcf23000 r--p 00000000 08:15 483049                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/ConsoleApplication.pdb
7f5bbcf23000-7f5bbcf2f000 rw-p 00000000 00:00 0 
7f5bbcf2f000-7f5bbcf36000 r--s 00000000 08:18 2894135                    /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f5bbcf36000-7f5bbcf38000 r--p 00000000 08:15 483048                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/ConsoleApplication.exe
7f5bbcf38000-7f5bbcf3d000 rw-p 00000000 00:00 0 
7f5bbcf3d000-7f5bbcf3e000 rw-s 00000000 00:13 2565703                    /dev/shm/mono.12537
7f5bbcf3e000-7f5bbcf48000 rw-p 00000000 00:00 0 
7f5bbcf48000-7f5bbcf49000 r--p 00023000 08:18 4588365                    /lib/x86_64-linux-gnu/ld-2.24.so
7f5bbcf49000-7f5bbcf4a000 rw-p 00024000 08:18 4588365                    /lib/x86_64-linux-gnu/ld-2.24.so
7f5bbcf4a000-7f5bbcf4b000 rw-p 00000000 00:00 0 
7ffdc3087000-7ffdc308f000 ---p 00000000 00:00 0 
7ffdc3865000-7ffdc3886000 rw-p 00000000 00:00 0                          [stack]
7ffdc393b000-7ffdc393d000 r--p 00000000 00:00 0                          [vvar]
7ffdc393d000-7ffdc393f000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
Stacktrace:

  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) object.__icall_wrapper_mono_marshal_free (intptr) [0x00007] in <9bbab8f8a2a246e98480e70b0839fd67>:0
  at (wrapper managed-to-native) PosTerminal.CommandWrapper.GetNext (intptr,string,int,string,int) [0x0004a] in <168134367fb1482ab5a2e1d72e75f7d4>:0
  at PosTerminal.CommandWrapper.GetNextResponce (string,int,string,int) [0x00002] in /media/destructor/Documents/Projects/NewBasket/PosTerminal/CommandWrapper.cs:228
  at ConsoleApplication.MainClass.ReadParametres (PosTerminal.CommandWrapper) [0x0003d] in /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/Program.cs:70
  at ConsoleApplication.MainClass.Main (string[]) [0x000b6] in /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/Program.cs:38
  at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) [0x00051] in <0db4f25cad30487fb9960478054aecb7>:0
/proc/self/maps:
406bf000-406ff000 rwxp 00000000 00:00 0 
418fd000-4190d000 rwxp 00000000 00:00 0 
55c1c3678000-55c1c3a99000 r-xp 00000000 08:18 2492164                    /usr/bin/mono-sgen
55c1c3c99000-55c1c3ca0000 r--p 00421000 08:18 2492164                    /usr/bin/mono-sgen
55c1c3ca0000-55c1c3ca4000 rw-p 00428000 08:18 2492164                    /usr/bin/mono-sgen
55c1c3ca4000-55c1c3cbb000 rw-p 00000000 00:00 0 
55c1c3f9f000-55c1c4144000 rw-p 00000000 00:00 0                          [heap]
7f5bac000000-7f5bac02a000 rw-p 00000000 00:00 0 
7f5bac02a000-7f5bb0000000 ---p 00000000 00:00 0 
7f5bb0000000-7f5bb0021000 rw-p 00000000 00:00 0 
7f5bb0021000-7f5bb4000000 ---p 00000000 00:00 0 
7f5bb4000000-7f5bb4021000 rw-p 00000000 00:00 0 
7f5bb4021000-7f5bb8000000 ---p 00000000 00:00 0 
7f5bb9085000-7f5bb9087000 r-xp 00000000 08:18 2894038                    /usr/lib/x86_64-linux-gnu/gconv/IBM866.so
7f5bb9087000-7f5bb9286000 ---p 00002000 08:18 2894038                    /usr/lib/x86_64-linux-gnu/gconv/IBM866.so
7f5bb9286000-7f5bb9287000 r--p 00001000 08:18 2894038                    /usr/lib/x86_64-linux-gnu/gconv/IBM866.so
7f5bb9287000-7f5bb9288000 rw-p 00002000 08:18 2894038                    /usr/lib/x86_64-linux-gnu/gconv/IBM866.so
7f5bb9288000-7f5bb93fa000 r-xp 00000000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f5bb93fa000-7f5bb95fa000 ---p 00172000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f5bb95fa000-7f5bb9604000 r--p 00172000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f5bb9604000-7f5bb9606000 rw-p 0017c000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f5bb9606000-7f5bb960a000 rw-p 00000000 00:00 0 
7f5bb960a000-7f5bb9630000 r-xp 00000000 08:15 379958                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
7f5bb9630000-7f5bb9830000 ---p 00026000 08:15 379958                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
7f5bb9830000-7f5bb9832000 rw-p 00026000 08:15 379958                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
7f5bb9832000-7f5bb983b000 ---p 00000000 00:00 0 
7f5bb983b000-7f5bb9a33000 rw-p 00000000 00:00 0 
7f5bb9a33000-7f5bb9a3c000 ---p 00000000 00:00 0 
7f5bb9a3c000-7f5bb9c34000 rw-p 00000000 00:00 0 
7f5bb9c34000-7f5bb9fff000 r--p 00000000 08:18 2891934                    /usr/lib/mono/4.5/mscorlib.dll
7f5bb9fff000-7f5bbafff000 rw-p 00000000 00:00 0 
7f5bbafff000-7f5bbb000000 ---p 00000000 00:00 0 
7f5bbb000000-7f5bbbc00000 rw-p 00000000 00:00 0 
7f5bbbd2d000-7f5bbbd30000 r--p 00000000 08:15 483042                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/PosTerminal.dll
7f5bbbd30000-7f5bbbdb1000 rw-p 00000000 00:00 0 
7f5bbbdb1000-7f5bbbde2000 r--p 00000000 08:18 3952192                    /usr/share/locale/uk/LC_MESSAGES/libc.mo
7f5bbbde2000-7f5bbbde3000 rw-p 00000000 00:00 0 
7f5bbbde3000-7f5bbbe42000 ---p 00000000 00:00 0 
7f5bbbe42000-7f5bbbfd7000 r-xp 00000000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f5bbbfd7000-7f5bbc1d7000 ---p 00195000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f5bbc1d7000-7f5bbc1db000 r--p 00195000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f5bbc1db000-7f5bbc1dd000 rw-p 00199000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f5bbc1dd000-7f5bbc1e1000 rw-p 00000000 00:00 0 
7f5bbc1e1000-7f5bbc1f7000 r-xp 00000000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f5bbc1f7000-7f5bbc3f6000 ---p 00016000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f5bbc3f6000-7f5bbc3f7000 r--p 00015000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f5bbc3f7000-7f5bbc3f8000 rw-p 00016000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f5bbc3f8000-7f5bbc410000 r-xp 00000000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f5bbc410000-7f5bbc60f000 ---p 00018000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f5bbc60f000-7f5bbc610000 r--p 00017000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f5bbc610000-7f5bbc611000 rw-p 00018000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f5bbc611000-7f5bbc615000 rw-p 00000000 00:00 0 
7f5bbc615000-7f5bbc618000 r-xp 00000000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f5bbc618000-7f5bbc817000 ---p 00003000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f5bbc817000-7f5bbc818000 r--p 00002000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f5bbc818000-7f5bbc819000 rw-p 00003000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f5bbc819000-7f5bbc820000 r-xp 00000000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f5bbc820000-7f5bbca1f000 ---p 00007000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f5bbca1f000-7f5bbca20000 r--p 00006000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f5bbca20000-7f5bbca21000 rw-p 00007000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f5bbca21000-7f5bbcb24000 r-xp 00000000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f5bbcb24000-7f5bbcd23000 ---p 00103000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f5bbcd23000-7f5bbcd24000 r--p 00102000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f5bbcd24000-7f5bbcd25000 rw-p 00103000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f5bbcd25000-7f5bbcd48000 r-xp 00000000 08:18 4588365                    /lib/x86_64-linux-gnu/ld-2.24.so
7f5bbcd48000-7f5bbcd8a000 rw-p 00000000 00:00 0 
7f5bbcd8a000-7f5bbcf1c000 r--p 00000000 08:18 2758121                    /usr/lib/locale/locale-archive
7f5bbcf1c000-7f5bbcf21000 rw-p 00000000 00:00 0 
7f5bbcf21000-7f5bbcf22000 r--p 00000000 08:15 483045                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/PosTerminal.pdb
7f5bbcf22000-7f5bbcf23000 r--p 00000000 08:15 483049                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/ConsoleApplication.pdb
7f5bbcf23000-7f5bbcf2f000 rw-p 00000000 00:00 0 
7f5bbcf2f000-7f5bbcf36000 r--s 00000000 08:18 2894135                    /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f5bbcf36000-7f5bbcf38000 r--p 00000000 08:15 483048                     /media/destructor/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/ConsoleApplication.exe
7f5bbcf38000-7f5bbcf3d000 rw-p 00000000 00:00 0 
7f5bbcf3d000-7f5bbcf3e000 rw-s 00000000 00:13 2565703                    /dev/shm/mono.12537
7f5bbcf3e000-7f5bbcf48000 rw-p 00000000 00:00 0 
7f5bbcf48000-7f5bbcf49000 r--p 00023000 08:18 4588365                    /lib/x86_64-linux-gnu/ld-2.24.so
7f5bbcf49000-7f5bbcf4a000 rw-p 00024000 08:18 4588365                    /lib/x86_64-linux-gnu/ld-2.24.so
7f5bbcf4a000-7f5bbcf4b000 rw-p 00000000 00:00 0 
7ffdc3087000-7ffdc308f000 ---p 00000000 00:00 0 
7ffdc3865000-7ffdc3886000 rw-p 00000000 00:00 0                          [stack]
7ffdc393b000-7ffdc393d000 r--p 00000000 00:00 0                          [vvar]
7ffdc393d000-7ffdc393f000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

Native stacktrace:

	/usr/bin/mono(+0xcb3ac) [0x55c1c37433ac]
	/lib/x86_64-linux-gnu/libpthread.so.0(+0x110c0) [0x7f5bbc4090c0]
	/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcf) [0x7f5bbbe74fff]
	/lib/x86_64-linux-gnu/libc.so.6(abort+0x16a) [0x7f5bbbe7642a]
	/lib/x86_64-linux-gnu/libc.so.6(+0x70c00) [0x7f5bbbeb2c00]
	/lib/x86_64-linux-gnu/libc.so.6(+0x76fc6) [0x7f5bbbeb8fc6]
	/lib/x86_64-linux-gnu/libc.so.6(+0x7780e) [0x7f5bbbeb980e]
	[0x406c1f50]

Debug info from gdb:

[New LWP 12538]
[New LWP 12540]
[New LWP 12541]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f5bbc408b3a in __waitpid (pid=pid@entry=12546, stat_loc=stat_loc@entry=0x7ffdc3881f2c, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
29	../sysdeps/unix/sysv/linux/waitpid.c: Немає такого файла або каталогу.
  Id   Target Id         Frame 
* 1    Thread 0x7f5bbcf1c740 (LWP 12537) "mono" 0x00007f5bbc408b3a in __waitpid (pid=pid@entry=12546, stat_loc=stat_loc@entry=0x7ffdc3881f2c, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
  2    Thread 0x7f5bbb7ff700 (LWP 12538) "SGen worker" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  3    Thread 0x7f5bb9c33700 (LWP 12540) "Finalizer" 0x00007f5bbc407536 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=0, futex_word=0x55c1c3ca99a0 <finalizer_sem>) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
  4    Thread 0x7f5bb9a32700 (LWP 12541) "Debugger agent" 0x00007f5bbc4084ff in __libc_recv (fd=fd@entry=3, buf=buf@entry=0x7f5bb9a31cf5, n=n@entry=11, flags=flags@entry=0) at ../sysdeps/unix/sysv/linux/x86_64/recv.c:28

Thread 4 (Thread 0x7f5bb9a32700 (LWP 12541)):
#0  0x00007f5bbc4084ff in __libc_recv (fd=fd@entry=3, buf=buf@entry=0x7f5bb9a31cf5, n=n@entry=11, flags=flags@entry=0) at ../sysdeps/unix/sysv/linux/x86_64/recv.c:28
#1  0x000055c1c3771fed in recv (__flags=0, __n=11, __buf=0x7f5bb9a31cf5, __fd=3) at /usr/include/x86_64-linux-gnu/bits/socket2.h:44
#2  socket_transport_recv (buf=0x7f5bb9a31cf5, len=11) at debugger-agent.c:1152
#3  0x000055c1c3775429 in transport_recv (len=11, buf=0x7f5bb9a31cf5) at debugger-agent.c:1558
#4  debugger_thread (arg=arg@entry=0x0) at debugger-agent.c:10517
#5  0x000055c1c38b251c in start_wrapper_internal (stack_ptr=<optimized out>, start_info=0x0) at threads.c:1012
#6  start_wrapper (data=0x55c1c4024120) at threads.c:1072
#7  0x00007f5bbc3ff494 in start_thread (arg=0x7f5bb9a32700) at pthread_create.c:333
#8  0x00007f5bbbf2aacf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Thread 3 (Thread 0x7f5bb9c33700 (LWP 12540)):
#0  0x00007f5bbc407536 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=0, futex_word=0x55c1c3ca99a0 <finalizer_sem>) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x55c1c3ca99a0 <finalizer_sem>, abstime=0x0) at sem_waitcommon.c:111
#2  0x00007f5bbc4075e4 in __new_sem_wait_slow (sem=0x55c1c3ca99a0 <finalizer_sem>, abstime=0x0) at sem_waitcommon.c:181
#3  0x00007f5bbc407679 in __new_sem_wait (sem=sem@entry=0x55c1c3ca99a0 <finalizer_sem>) at sem_wait.c:29
#4  0x000055c1c38f3932 in mono_os_sem_wait (flags=MONO_SEM_FLAGS_ALERTABLE, sem=0x55c1c3ca99a0 <finalizer_sem>) at ../../mono/utils/mono-os-semaphore.h:209
#5  mono_coop_sem_wait (flags=MONO_SEM_FLAGS_ALERTABLE, sem=0x55c1c3ca99a0 <finalizer_sem>) at ../../mono/utils/mono-coop-semaphore.h:43
#6  finalizer_thread (unused=unused@entry=0x0) at gc.c:852
#7  0x000055c1c38b251c in start_wrapper_internal (stack_ptr=<optimized out>, start_info=0x0) at threads.c:1012
#8  start_wrapper (data=0x55c1c3ffab00) at threads.c:1072
#9  0x00007f5bbc3ff494 in start_thread (arg=0x7f5bb9c33700) at pthread_create.c:333
#10 0x00007f5bbbf2aacf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Thread 2 (Thread 0x7f5bbb7ff700 (LWP 12538)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x000055c1c3950c4b in mono_os_cond_wait (mutex=0x55c1c3cb8860 <lock>, cond=0x55c1c3cb8820 <work_cond>) at ../../mono/utils/mono-os-mutex.h:173
#2  get_work (job=<synthetic pointer>, do_idle=<synthetic pointer>, work_context=<synthetic pointer>, worker_index=0) at sgen-thread-pool.c:165
#3  thread_func (data=<optimized out>) at sgen-thread-pool.c:196
#4  0x00007f5bbc3ff494 in start_thread (arg=0x7f5bbb7ff700) at pthread_create.c:333
#5  0x00007f5bbbf2aacf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Thread 1 (Thread 0x7f5bbcf1c740 (LWP 12537)):
#0  0x00007f5bbc408b3a in __waitpid (pid=pid@entry=12546, stat_loc=stat_loc@entry=0x7ffdc3881f2c, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
#1  0x000055c1c3743490 in mono_handle_native_crash (signal=0x55c1c3998f16 "SIGABRT", ctx=<optimized out>, info=<optimized out>) at mini-exceptions.c:2830
#2  <signal handler called>
#3  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#4  0x00007f5bbbe7642a in __GI_abort () at abort.c:89
#5  0x00007f5bbbeb2c00 in __libc_message (do_abort=do_abort@entry=2, fmt=fmt@entry=0x7f5bbbfa7d98 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
#6  0x00007f5bbbeb8fc6 in malloc_printerr (action=3, str=0x7f5bbbfa7ea8 "free(): invalid next size (fast)", ptr=<optimized out>, ar_ptr=<optimized out>) at malloc.c:5049
#7  0x00007f5bbbeb980e in _int_free (av=0x7f5bbc1dbb00 <main_arena>, p=0x55c1c4103c30, have_lock=0) at malloc.c:3905
#8  0x00000000406c1f50 in ?? ()
#9  0x000055c1c4103c40 in ?? ()
#10 0x0000000000000001 in ?? ()
#11 0x000055c1c4038320 in ?? ()
#12 0x000055c1c400db20 in ?? ()
#13 0x0000000000000001 in ?? ()
#14 0x000055c1c3ca5b18 in r ()
#15 0x000055c1c3ca5b20 in bp_trampoline ()
#16 0x00007ffdc38833d0 in ?? ()
#17 0x00007ffdc38834b0 in ?? ()
#18 0x00007ffdc3883330 in ?? ()
#19 0x000055c1c3ca5b20 in bp_trampoline ()
#20 0x00000000406f029c in ?? ()
#21 0x0000000000000001 in ?? ()
#22 0x00007ffdc38834b0 in ?? ()
#23 0x0000000000000001 in ?? ()
#24 0x00007f5bbbd98130 in ?? ()
#25 0x00007f5bbbd98130 in ?? ()
#26 0x0000000000000001 in ?? ()
#27 0x000055c1c3ca5b18 in r ()
#28 0x000055c1c3ca5b20 in bp_trampoline ()
#29 0x000055c1c4009100 in ?? ()
#30 0x00007ffdc38834b0 in ?? ()
#31 0x00007ffdc3883390 in ?? ()
#32 0x0000000000000000 in ?? ()

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

@jpbruyere
Copy link
Contributor

jpbruyere commented May 8, 2018

string type suit well for const char *, but here, params don't have the const attribute, StringBuilder class has special marshalling for this.
But the error message indicate a fault when trying to free a pointer (when using string or stringbuilder, mono will try to free the pointer). In that case you may try to use IntPtr instead and then call Marshal.PtrToStringAnsi or Marshal.PtrToStringUni. (Mono will not try to free it).

So, if the pointers may be freed by mono, use StringBuilder like this

[DllImport("libpos.so.1.24.0", EntryPoint = "pos_get_first", CallingConvention = CallingConvention.Cdecl)]
private extern static Boolean GetFirst(IntPtr handle_p, StringBuilder param, Int32 paramSize, StringBuilder val, Int32 valSize);

else, use IntPtr and marshal it to a string.

[DllImport("libpos.so.1.24.0", EntryPoint = "pos_get_first", CallingConvention = CallingConvention.Cdecl)]
private extern static Boolean GetFirst(IntPtr handle_p, IntPtr param, Int32 paramSize, IntPtr val, Int32 valSize);

Detailed informations on this at: http://www.mono-project.com/docs/advanced/pinvoke/

@Rombersoft
Copy link
Author

I've already written this article and when I use StringBuilder function does not set it value and stringBuilder.ToString() returns empty string

@Rombersoft
Copy link
Author

SEcond variant with IntPtr is not suitable because IntPtr must has value before using in in function

private extern static Boolean GetFirst(IntPtr handle_p, IntPtr param, Int32 paramSize, IntPtr val, Int32 valSize);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants