保持“ Hello World!”程序不适用于Mac的Visual Studio

时间:2018-12-07 19:08:51

标签: macos visual-studio mono suave

我在尝试执行“ Hello World!”时遇到运行时错误。 Suave网页上的程序:

打开Suave.Web 打开Suave。成功

[<EntryPoint>]
let main argv =
    startWebServer defaultConfig (OK "Hello, Suave!")
    0

出现此错误:

  

已加载的程序集:/ Users / [myUserName] / Library / Mobile   文档/com~apple~CloudDocs/Projects/SuaveRestApi/SuaveRestApi/bin/Debug/SuaveRestApi.exe   加载的程序集:/ Users / [myUserName] / Library / Mobile   文档/com~apple~CloudDocs/Projects/SuaveRestApi/SuaveRestApi/bin/Debug/FSharp.Core.dll   [外部]加载的程序集:/ Users / [myUserName] / Library / Mobile   文档/com~apple~CloudDocs/Projects/SuaveRestApi/SuaveRestApi/bin/Debug/Suave.dll   [外部]已加载的程序集:   /库/框架/Mono.framework/版本/5.18.0/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll   [外部]已加载的程序集:   /库/框架/Mono.framework/版本/5.18.0/lib/mono/gac/Mono.Security/4.0.0.0__0738eb9f132ed756/Mono.Security.dll   [外部]方法idx 6984大于其中的行数(6984)   PPDB MethodDebugInformation表,用于方法   。$ YoLo:.cctor在   '/用户/ [myUserName] /库/移动   文档/com~apple~CloudDocs/Projects/SuaveRestApi/SuaveRestApi/bin/Debug/Suave.pdb'。   可能是格式错误的PDB文件。堆栈跟踪:

     

在<0xffffffff>在(包装器管理为本地)   object .__ icall_wrapper_mono_generic_class_init(intptr)[0x00007]在   <699ddfd029d348d1a69fb1f9fc28d7cb>:0在YoLo / UTF8.get_utf8()   [0x00000]在   /Users/ademar/Projects/release/suave/src/Suave/Utils/YoLo.fs:447在   Suave.Successful.OK(字符串)[0x00000]在   /Users/ademar/Projects/release/suave/src/Suave/Combinators.fs:136 at   / Users / [myUserName] / Library / Mobile中的App.main(字符串[])[0x00000]   文件/com~apple~CloudDocs/Projects/SuaveRestApi/SuaveRestApi/App.fs:6   在(包装运行时调用).runtime_invoke_int_object   (object,intptr,intptr,intptr)[0x00057]在   <5c0abea33afd9276a7450383a3be0a5c>:0本机指令周围的内存   指针(0x7fff71ccc23e):0x7fff71ccc22e ff ff c3 90 90 90 b8 48 01   00 02 49 89 ca 0f 05 ....... H ... I .... 0x7fff71ccc23e 73 08 48 89 c7   e9 6f a1 ff ff c3 55 48 89 e5 41 s.H ... o .... UH..A 0x7fff71ccc24e 57   41 56 41 55 41 54 53 48 81 ec 88 00 00 00 49 WAVAUATSH ...... I   0x7fff71ccc25e 89 f4 48 8d 05 01 c3 cb 32 48 8b 00 48 8d 9d 60   ..H ..... 2H..H..`

     

本机堆栈跟踪:

     

0单声道0x000000010ba29842   mono_dump_native_crash_info + 898 1个单声道
  0x000000010b9cd303 mono_handle_native_crash + 195 2
  libsystem_platform.dylib 0x00007fff71d77b3d _sigtramp + 29     3单声道0x000000010bcdf008   simple_lower_case_mapping_higharea_table0 + 20296 4
  libsystem_c.dylib 0x00007fff71c351c9中止+ 127 5   单声道0x000000010bbf9c5f   mono_log_write_logfile + 351 6 mono
  0x000000010bc15dac monoeg_g_log + 204 7 mono
  0x000000010bac9e68 mono_ppdb_get_seq_points + 1112 8 mono
  0x000000010b93492f mono_method_to_ir + 1151 9 mono
  0x000000010b91ade7 mini_method_compile + 3479 10单声道
  0x000000010b91e32c mono_jit_compile_method_inner + 76 11 mono
  0x000000010b921cc9 mono_jit_compile_method_with_opt + 2665 12个单声道
  0x000000010b925d8e mono_jit_runtime_invoke + 526 13 mono
  0x000000010bb241d4 do_runtime_invoke + 84 14单声道
  0x000000010bb201a8 mono_runtime_class_init_full + 872 15 mono
  0x000000010b97a69c mono_generic_class_init + 28 16 ???
  0x000000010beb7e2c 0x0 + 4494949932 17单声道
  0x000000010b9261d3 mono_jit_runtime_invoke + 1619 18 mono
  0x000000010bb241d4 do_runtime_invoke + 84 19单声道
  0x000000010bb27cac do_exec_main_checked + 156 20单声道
  0x000000010b98d19d mono_jit_exec + 349 21 mono
  0x000000010b99037f mono_main + 11615 22 mono
  0x000000010b915078主+ 264 23 libdyld.dylib
  0x00007fff71b8ced9开始+ 1从0x1115795c0杀死0x70000ed57000   从0x1115795c0杀死0x70000eb54000输入线程摘要   从0x1115795c0暂停   0x1115795c0。

     

等待转储线程恢复

     

从gdb调试信息:

     

(lldb)命令源-s 0'/tmp/mono-gdb-commands.UoI26p'执行   '/tmp/mono-gdb-commands.UoI26p'中的命令。 (lldb)进程附加   --pid 1457进程1457已停止   *线程#1,名称='tid_307',队列='com.apple.main-thread',停止原因=信号SIGSTOP       帧#0:0x00007fff71ccb2d2 libsystem_kernel.dylib __wait4 + 10 libsystem_kernel.dylib __ wait4:   -> 0x7fff71ccb2d2 <+10>:jae 0x7fff71ccb2dc; <+20>       0x7fff71ccb2d4 <+12>:movq%rax,%rdi       0x7fff71ccb2d7 <+15>:jmp 0x7fff71cc6381;恐怖       0x7fff71ccb2dc <+20>:retq目标0 :(单声道)已停止。

     

可执行模块设置为   “ /Library/Frameworks/Mono.framework/Versions/5.18.0/bin/mono”。   体系结构设置为:x86_64h-apple-macosx。 (lldb)线程列表进程   1457年停止   *线程1:tid = 0xd6f5,0x00007fff71ccb2d2 libsystem_kernel.dylib __wait4 + 10, name = 'tid_307', queue = 'com.apple.main-thread', stop reason = signal SIGSTOP thread #2: tid = 0xd6f6, 0x00007fff71cc97de libsystem_kernel.dylib __ psynch_cvwait + 10,名称='SGen worker'线程#3:tid = 0xd6f8,0x00007fff71cc61b6   libsystem_kernel.dylib semaphore_wait_trap + 10, name = 'Finalizer'
thread #4: tid = 0xd6f9, 0x00007fff71cc93e6 libsystem_kernel.dylib
__ recvfrom + 10,名称='Debugger agent'
  线程5:tid = 0xd700、0x00007fff71cc7b6a   libsystem_kernel.dylib __workq_kernreturn + 10 thread #6: tid = 0xd701, 0x00007fff71cc7b6a libsystem_kernel.dylib __ workq_kernreturn +   10(lldb)个线程全部回溯   *线程#1,名称='tid_307',队列='com.apple.main-thread',停止原因=信号SIGSTOP *帧#0:0x00007fff71ccb2d2   libsystem_kernel.dylib __wait4 + 10 frame #1: 0x000000010ba299b6 mono mono_dump_native_crash_info,位于mini-posix.c:1079 [opt]       帧#2:0x000000010ba29862 mono mono_dump_native_crash_info(signal="SIGABRT", ctx=0x00007ffee42eb0f0, info=<unavailable>) at mini-posix.c:1102 [opt] frame #3: 0x000000010b9cd303 mono mono_handle_native_crash(signal =“ SIGABRT”,   ctx = 0x00007ffee42eb0f0,信息= 0x00007ffee42eb088)在   mini-exceptions.c:3197 [opt]       框架4:0x00007fff71d77b3d libsystem_platform.dylib _sigtramp + 29 frame #5: 0x00007fff71ccc23f libsystem_kernel.dylib __ pthread_kill + 11       框架6:0x00007fff71d82c1c libsystem_pthread.dylib pthread_kill + 285 frame #7: 0x00007fff71c351c9 libsystem_c.dylib中止+ 127       帧#8:0x000000010bbf9c5f mono mono_log_write_logfile(log_domain=<unavailable>, level=<unavailable>, hdr=<unavailable>, message="Method idx 6984 is greater than number of rows (6984) in PPDB MethodDebugInformation table, for method <StartupCode$Suave>.$YoLo:.cctor in '/Users/[myUserName]/Library/Mobile Documents/com~apple~CloudDocs/Projects/SuaveRestApi/SuaveRestApi/bin/Debug/Suave.pdb'. Likely a malformed PDB file.") at mono-log-common.c:135 [opt] frame #9: 0x000000010bc15dac mono monoeg_g_log [内联] monoeg_g_logstr(log_domain = 0x0000000000000000,   log_level = G_LOG_LEVEL_ERROR,msg =)在goutput.c:117 [opt]       帧#10:0x000000010bc15d83 mono monoeg_g_log [inlined] monoeg_g_logv_nofree(format=<unavailable>, args=<unavailable>) at goutput.c:128 [opt] frame #11: 0x000000010bc15d70 mono monoeg_g_log [内联] monoeg_g_logv(format =,args =)在   goutput.c:135 [opt]       第12帧:0x000000010bc15d70单声道monoeg_g_log(log_domain=0x0000000000000000, log_level=G_LOG_LEVEL_ERROR, format=<unavailable>) at goutput.c:144 [opt] frame #13: 0x000000010bac9e68 mono mono_ppdb_get_seq_points(minfo =,   source_file =,source_file_list =,   source_files =,seq_points = 0x00007ffee42eb730,   n_seq_points =),位于debug-mono-ppdb.c:427 [opt]       框架#14:0x000000010b93492f mono mono_method_to_ir(cfg=<unavailable>, method=<unavailable>, start_bblock=0x0000000000000000, end_bblock=0x0000000000000000, return_var=0x0000000000000000, inline_args=0x0000000000000000, inline_offset=<unavailable>, is_virtual_call=<unavailable>) at method-to-ir.c:6674 [opt] frame #15: 0x000000010b91ade7 mono mini_method_compile(method =,opts = 374434303,   域= 0x00007fbc91f02f00,标志= JIT_FLAG_RUN_CCTORS,部件= 0,   aot_method_index = -1)at mini.c:3455 [opt]       框架#16:0x000000010b91e32c mono mono_jit_compile_method_inner(method=0x00007fbc94832ea8, target_domain=0x00007fbc91f02f00, opt=<unavailable>, error=0x00007ffee42ebd60) at mini.c:4043 [opt] frame #17: 0x000000010b921cc9 mono mono_jit_compile_method_with_opt(方法= 0x00007fbc94832ea8,   opt =,jit_only = 1,error = 0x00007ffee42ebd60)在   mini-runtime.c:2411 [opt]       框架#18:0x000000010b925d8e mono mono_jit_runtime_invoke [inlined] mono_jit_compile_method_jit_only(method=<unavailable>, error=0x00007ffee42ebd60) at mini-runtime.c:2471 [opt] frame #19: 0x000000010b925d6e mono mono_jit_runtime_invoke(method =,obj =,   params = 0x0000000000000000,exc =,   错误= 0x00007ffee42ebd60)在迷你执行阶段。c:3011 [opt]       帧#20:0x000000010bb241d4 mono do_runtime_invoke(method=0x00007fbc94832ea8, obj=0x0000000000000000, params=0x0000000000000000, exc=0x00007ffee42ebd08, error=0x00007ffee42ebd60) at object.c:2960 [opt] frame #21: 0x000000010bb201a8 mono mono_runtime_class_init_full [inlined] mono_runtime_try_invoke(method =,   obj =,params =,错误= 0x00007ffee42ebd60)   object.c:3069 [opt]       第22帧:0x000000010bb20167 mono mono_runtime_class_init_full(vtable=0x00007fbc9402ee60, error=0x00007ffee42ebd60) at object.c:526 [opt] frame #23: 0x000000010b97a69c mono mono_generic_class_init(vtable =)位于   jit-icalls.c:1511 [opt]       框架#24:0x000000010beb7e2c       第25帧:0x000000010b9261d3单声道mono_jit_runtime_invoke(method=<unavailable>, obj=<unavailable>, params=0x00007ffee42ec148, exc=0x00007fbc9402ee60, error=<unavailable>) at mini-runtime.c:3148 [opt] frame #26: 0x000000010bb241d4 mono do_runtime_invoke(方法= 0x00007fbc91f04798,   obj = 0x0000000000000000,params = 0x00007ffee42ec148,   在object.c:ex = 0x0000000000000000,错误= 0x00007ffee42ec180)   [选择]       帧#27:0x000000010bb27cac mono do_exec_main_checked [inlined] mono_runtime_invoke_checked(method=<unavailable>, obj=<unavailable>, params=<unavailable>, error=0x00007ffee42ec180) at object.c:3128 [opt] frame #28: 0x000000010bb27c9d mono do_exec_main_checked(方法= 0x00007fbc91f04798,   args =,错误= 0x00007ffee42ec180),位于object.c:4949 [opt]       框架#29:0x000000010b98d19d mono mono_jit_exec at driver.g.c:1236 [opt] frame #30: 0x000000010b98d18f mono mono_jit_exec(domain =,assembly =,   argc = 1,argv = 0x00007ffee42ec550)在driver.g.c:1195 [opt]       帧#31:0x000000010b99037f mono mono_main [inlined] main_thread_handler at driver.g.c:1313 [opt] frame #32: 0x000000010b990348 mono mono_main(argc = 4,argv =)在driver.g.c:2483 [opt]       帧#33:0x000000010b915078 mono main [inlined] mono_main_with_options(argc=<unavailable>, argv=<unavailable>) at main.c:50 [opt] frame #34: 0x000000010b915064 mono main(argc = 4,argv =)位于main.c:405 [opt]       框架#35:0x00007fff71b8ced9 libdyld.dylib start + 1 frame #36: 0x00007fff71b8ced9 libdyld.dylib开始+ 1个线程#2,名称='SGen worker'       框架#0:0x00007fff71cc97de libsystem_kernel.dylib __psynch_cvwait + 10 frame #1: 0x00007fff71d83593 libsystem_pthread.dylib _ pthread_cond_wait + 724       帧#2:0x000000010bbf10ee mono thread_func [inlined] mono_os_cond_wait(mutex=<unavailable>) at mono-os-mutex.h:173 [opt] frame #3: 0x000000010bbf10db mono thread_func位于sgen-thread-pool。c:165 [opt]       帧4:0x000000010bbf10cd单声道thread_func(data=0x0000000000000000) at sgen-thread-pool.c:196 [opt] frame #5: 0x00007fff71d80305 libsystem_pthread.dylib _ pthread_body + 126       框架#6:0x00007fff71d8326f libsystem_pthread.dylib _pthread_start + 70 frame #7: 0x00007fff71d7f415 libsystem_pthread.dylib thread_start + 13线程#3,名称='Finalizer'       帧#0:0x00007fff71cc61b6 libsystem_kernel.dylib semaphore_wait_trap + 10 frame #1: 0x000000010bb9e9aa mono finalizer_thread [inlined] mono_os_sem_wait(flags = MONO_SEM_FLAGS_ALERTABLE)在   mono-os-semaphore.h:90 [opt]       第2帧:0x000000010bb9e99f mono finalizer_thread at mono-coop-semaphore.h:43 [opt] frame #3: 0x000000010bb9e985 mono finalizer_thread(unused =)在gc.c:918 [opt]       框架#4:0x000000010bb49e13 mono start_wrapper [inlined] start_wrapper_internal at threads.c:1151 [opt] frame #5: 0x000000010bb49d83 mono start_wrapper(data = 0x00007fbc91f34850)在线程上。c:1211 [opt]       框架6:0x00007fff71d80305 libsystem_pthread.dylib _pthread_body + 126 frame #7: 0x00007fff71d8326f libsystem_pthread.dylib _ pthread_start + 70       帧#8:0x00007fff71d7f415 libsystem_pthread.dylib thread_start + 13 thread #4, name = 'Debugger agent' frame #0: 0x00007fff71cc93e6 libsystem_kernel.dylib __ recvfrom + 10       帧#1:0x000000010ba7e45e mono socket_transport_recv(buf=2001-01-01 00:00:00 UTC, len=11) at debugger-agent.c:1108 [opt] frame #2: 0x000000010ba6f296 mono debugger_thread [内联]在debugger-agent.c上的transport_recv(len = 11):1518 [opt]       框架3:0x000000010ba6f27c mono debugger_thread(arg=<unavailable>) at debugger-agent.c:9484 [opt] frame #4: 0x000000010bb49e13 mono start_wrapper [内联] start_wrapper_internal在线程处。c:1151 [opt]       框架5:0x000000010bb49d83单声道start_wrapper(data=0x00007fbc91f389a0) at threads.c:1211 [opt] frame #6: 0x00007fff71d80305 libsystem_pthread.dylib _ pthread_body + 126       框架#7:0x00007fff71d8326f libsystem_pthread.dylib _pthread_start + 70 frame #8: 0x00007fff71d7f415 libsystem_pthread.dylib thread_start + 13线程#5       框架#0:0x00007fff71cc7b6a libsystem_kernel.dylib __workq_kernreturn + 10 frame #1: 0x00007fff71d7f630 libsystem_pthread.dylib _ pthread_wqthread + 446       框架2:0x00007fff71d7f405 libsystem_pthread.dylib start_wqthread + 13 thread #6 frame #0: 0x00007fff71cc7b6a libsystem_kernel.dylib __ workq_kernreturn + 10       框架#1:0x00007fff71d7f630 libsystem_pthread.dylib _pthread_wqthread + 446 frame #2: 0x00007fff71d7f405 libsystem_pthread.dylib start_wqthread + 13(lldb)分离

     

================================================ ==================执行本机代码时获得了SIGABRT。这通常表示致命   Mono运行时或您的

使用的本机库之一错误      

应用程序。

     

(lldb)退出进程1457已分离

1 个答案:

答案 0 :(得分:0)

Visual Studio for Mac和Suave似乎有问题。我在Visual Studio Code(也适用于Mac)中进行了相同的测试,并且工作正常。