Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C#]Problema con Process.Exited event e Gtk.MessageDialog

    Salve,
    sto programmando su Ubuntu utilizzando il C# con Mono un programma Gtk# che esegue un processo quando viene cliccato un pulsante, reindirizzandone l'output e, quando il processo termina, visualizza quest output in un MessageDialog, il codice è simile a questo:

    codice:
    class MyClass
    {
    Window window;
    // ...... altri metodi .......
                    private void OnClick(object o, EventArgs args)
                    {
                                    myprocess = new Process();
                                    myprocess.EnableRaisingEvents = true;
                                    myprocess.StartInfo.FileName = programPath;
                                    myprocess.StartInfo.UseShellExecute = false;
                                    myprocess.StartInfo.RedirectStandardOutput = true;
                                    myprocess.StartInfo.Arguments = "........ arguments ........."
                                    myprocess.Exited += OnProcessExit;
                                    myprocess.Start();
                     }
    
                     private  void OnProcessExit(object sender, EventArgs args)
                     {
                                    MessageDialog md = new MessageDialog(window, DialogFlags.DestroyWithParent, MessageType.Info, ButtonsType.Ok, ((Process)sender).StandardOutput.ReadToEnd());
                                    md.Run();
                                    md.Destroy();
                     }
    
    //....... altri metodi ....
    }
    La compilazione va benissimo ma facendo il debug il programma viene killato da un SIGSEGV quando raggiunge la riga di md.Run().
    Se sostituisco un output testuale utilizzando Console.WriteLine() va tutto bene, inoltre richiamando MessageDialog da qualsiasi altro metodo della classe non ci sono problemi, ma non capisco il motivo se lo faccio dal delegato associato all'evento Exited il programma si chiude scrivendo questo sulla console:

    codice:
    Stacktrace:
    
      at (wrapper managed-to-native) Gtk.Application.gtk_main () <0x00004>
      at (wrapper managed-to-native) Gtk.Application.gtk_main () <0x00004>
      at Gtk.Application.Run () <IL 0x00000, 0x0001c>
      at PdftohtMl.Gui.Start () [0x00000] in /home/federico/Projects/workspace/Prove/prova1/gui.cs:52
      at PdftohtMl.Hello.Main () [0x00016] in /home/federico/Projects/workspace/Prove/prova1/main.cs:12
      at (wrapper runtime-invoke) <Module>.runtime_invoke_int (object,intptr,intptr,intptr) <IL 0x0001b, 0x00087>
    
    Native stacktrace:
    
            /usr/bin/mono() [0x80d4d0b]
            /usr/bin/mono() [0x810ffeb]
            [0xb787d40c]
            /usr/lib/libgtk-x11-2.0.so.0(+0x27c8d6) [0xb5e0e8d6]
            /usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0x7c) [0xb564393c]
            /usr/lib/libgobject-2.0.so.0(+0xaa87) [0xb5632a87]
            /usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x192) [0xb5634412]
            /usr/lib/libgobject-2.0.so.0(+0x221e6) [0xb564a1e6]
            /usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x75c) [0xb564b9bc]
            /usr/lib/libgobject-2.0.so.0(g_signal_emit+0x32) [0xb564be62]
            /usr/lib/libgtk-x11-2.0.so.0(gtk_container_check_resize+0x8a) [0xb5c35b3a]
            /usr/lib/libgtk-x11-2.0.so.0(+0xa3b90) [0xb5c35b90]
            /usr/lib/libgdk-x11-2.0.so.0(+0x14998) [0xb5b0f998]
            /lib/libglib-2.0.so.0(+0x3b841) [0xb77cf841]
            /lib/libglib-2.0.so.0(g_main_context_dispatch+0x1d5) [0xb77d1855]
            /lib/libglib-2.0.so.0(+0x41668) [0xb77d5668]
            /lib/libglib-2.0.so.0(g_main_loop_run+0x187) [0xb77d5ba7]
            /usr/lib/libgtk-x11-2.0.so.0(gtk_main+0xb9) [0xb5cc11d9]
            [0xb534f894]
            [0xb534f815]
            [0xb534f7d5]
            [0xb68e8471]
            [0xb68e8550]
            /usr/bin/mono() [0x8061328]
            /usr/bin/mono(mono_runtime_invoke+0x40) [0x813c890]
            /usr/bin/mono(mono_runtime_exec_main+0x15b) [0x814045b]
            /usr/bin/mono(mono_runtime_run_main+0x112) [0x81406e2]
            /usr/bin/mono(mono_main+0x1679) [0x80b2f99]
            /usr/bin/mono() [0x8059385]
            /lib/libc.so.6(__libc_start_main+0xe7) [0xb75ffce7]
            /usr/bin/mono() [0x80592c1]
    
    Debug info from gdb:
    
    [Thread debugging using libthread_db enabled]
    [New Thread 0xb14dcb70 (LWP 3955)]
    [New Thread 0xb13dbb70 (LWP 3949)]
    [New Thread 0xb2753b70 (LWP 3927)]
    [New Thread 0xb63e3b70 (LWP 3922)]
    [New Thread 0xb64e4b70 (LWP 3921)]
    [New Thread 0xb6515b70 (LWP 3920)]
    [New Thread 0xb73b1b70 (LWP 3918)]
    0xb787d416 in __kernel_vsyscall ()
      8 Thread 0xb73b1b70 (LWP 3918)  0xb787d416 in __kernel_vsyscall ()
      7 Thread 0xb6515b70 (LWP 3920)  0xb787d416 in __kernel_vsyscall ()
      6 Thread 0xb64e4b70 (LWP 3921)  0xb787d416 in __kernel_vsyscall ()
      5 Thread 0xb63e3b70 (LWP 3922)  0xb787d416 in __kernel_vsyscall ()
      4 Thread 0xb2753b70 (LWP 3927)  0xb787d416 in __kernel_vsyscall ()
      3 Thread 0xb13dbb70 (LWP 3949)  0xb787d416 in __kernel_vsyscall ()
      2 Thread 0xb14dcb70 (LWP 3955)  0xb787d416 in __kernel_vsyscall ()
    * 1 Thread 0xb75b26f0 (LWP 3917)  0xb787d416 in __kernel_vsyscall ()
    
    Thread 8 (Thread 0xb73b1b70 (LWP 3918)):
    #0  0xb787d416 in __kernel_vsyscall ()
    #1  0xb77764dc in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
    #2  0x08213b9a in ?? ()
    #3  0x0820d68d in ?? ()
    #4  0x082149d5 in ?? ()
    #5  0xb7771cc9 in start_thread () from /lib/libpthread.so.0
    #6  0xb76b969e in clone () from /lib/libc.so.6
    
    Thread 7 (Thread 0xb6515b70 (LWP 3920)):
    #0  0xb787d416 in __kernel_vsyscall ()
    #1  0xb7779de6 in nanosleep () from /lib/libpthread.so.0
    #2  0x081e5238 in ?? ()
    #3  0xb7771cc9 in start_thread () from /lib/libpthread.so.0
    #4  0xb76b969e in clone () from /lib/libc.so.6
    
    Thread 6 (Thread 0xb64e4b70 (LWP 3921)):
    #0  0xb787d416 in __kernel_vsyscall ()
    #1  0xb7778895 in sem_wait@@GLIBC_2.1 () from /lib/libpthread.so.0
    #2  0x08200ae8 in mono_sem_wait ()
    #3  0x081163f8 in ?? ()
    #4  0x081b11db in ?? ()
    #5  0x081e8e4e in ?? ()
    #6  0x08214f85 in ?? ()
    #7  0xb7771cc9 in start_thread () from /lib/libpthread.so.0
    #8  0xb76b969e in clone () from /lib/libc.so.6
    
    Thread 5 (Thread 0xb63e3b70 (LWP 3922)):
    #0  0xb787d416 in __kernel_vsyscall ()
    #1  0xb77798f8 in recv () from /lib/libpthread.so.0
    #2  0x080eb2a7 in ?? ()
    #3  0x080f61e2 in ?? ()
    #4  0x081e8e4e in ?? ()
    #5  0x08214f85 in ?? ()
    #6  0xb7771cc9 in start_thread () from /lib/libpthread.so.0
    #7  0xb76b969e in clone () from /lib/libc.so.6
    
    Thread 4 (Thread 0xb2753b70 (LWP 3927)):
    #0  0xb787d416 in __kernel_vsyscall ()
    #1  0xb7776884 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
    #2  0xb7864e7e in ?? () from /usr/lib/libgthread-2.0.so.0
    #3  0xb77a82cc in ?? () from /lib/libglib-2.0.so.0
    #4  0xb77a83fd in g_async_queue_timed_pop () from /lib/libglib-2.0.so.0
    #5  0xb77fe337 in ?? () from /lib/libglib-2.0.so.0
    #6  0xb77fc48f in ?? () from /lib/libglib-2.0.so.0
    #7  0xb7771cc9 in start_thread () from /lib/libpthread.so.0
    #8  0xb76b969e in clone () from /lib/libc.so.6
    
    Thread 3 (Thread 0xb13dbb70 (LWP 3949)):
    #0  0xb787d416 in __kernel_vsyscall ()
    #1  0xb7776884 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
    #2  0x081f84ac in ?? ()
    #3  0x081e5c2a in ?? ()
    #4  0x081d2911 in ?? ()
    #5  0x081b11db in ?? ()
    #6  0x081e8e4e in ?? ()
    #7  0x08214f85 in ?? ()
    #8  0xb7771cc9 in start_thread () from /lib/libpthread.so.0
    #9  0xb76b969e in clone () from /lib/libc.so.6
    
    Thread 2 (Thread 0xb14dcb70 (LWP 3955)):
    #0  0xb787d416 in __kernel_vsyscall ()
    #1  0xb77764dc in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
    #2  0xb77d314c in g_main_context_wait () from /lib/libglib-2.0.so.0
    #3  0xb77d5af8 in g_main_loop_run () from /lib/libglib-2.0.so.0
    #4  0xb5c3a7ff in gtk_dialog_run () from /usr/lib/libgtk-x11-2.0.so.0
    #5  0xb5355d9a in ?? ()
    #6  0xb5355ce8 in ?? ()
    #7  0xb14fb63a in ?? ()
    #8  0xb14fafba in ?? ()
    #9  0xb14fae64 in ?? ()
    #10 0xb14facb8 in ?? ()
    #11 0xb14faa1b in ?? ()
    #12 0xb68e8155 in ?? ()
    #13 0x08061328 in ?? ()
    #14 0x0813c890 in mono_runtime_invoke ()
    #15 0x081421a4 in mono_runtime_invoke_array ()
    #16 0x0814266e in ?? ()
    #17 0x081d2341 in ?? ()
    #18 0x081d2858 in ?? ()
    #19 0x081b11db in ?? ()
    #20 0x081e8e4e in ?? ()
    #21 0x08214f85 in ?? ()
    #22 0xb7771cc9 in start_thread () from /lib/libpthread.so.0
    #23 0xb76b969e in clone () from /lib/libc.so.6
    
    Thread 1 (Thread 0xb75b26f0 (LWP 3917)):
    #0  0xb787d416 in __kernel_vsyscall ()
    #1  0xb77795cb in read () from /lib/libpthread.so.0
    #2  0x080d4ede in ?? ()
    #3  0x0810ffeb in ?? ()
    #4  <signal handler called>
    #5  0xb5b63646 in gdk_window_set_geometry_hints () from /usr/lib/libgdk-x11-2.0.so.0
    #6  0xb5e0e8d6 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
    #7  0xb564393c in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
    #8  0xb5632a87 in ?? () from /usr/lib/libgobject-2.0.so.0
    #9  0xb5634412 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
    #10 0xb564a1e6 in ?? () from /usr/lib/libgobject-2.0.so.0
    #11 0xb564b9bc in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
    #12 0xb564be62 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
    #13 0xb5c35b3a in gtk_container_check_resize () from /usr/lib/libgtk-x11-2.0.so.0
    #14 0xb5c35b90 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
    #15 0xb5b0f998 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
    #16 0xb77cf841 in ?? () from /lib/libglib-2.0.so.0
    #17 0xb77d1855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
    #18 0xb77d5668 in ?? () from /lib/libglib-2.0.so.0
    #19 0xb77d5ba7 in g_main_loop_run () from /lib/libglib-2.0.so.0
    #20 0xb5cc11d9 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
    #21 0xb534f894 in ?? ()
    #22 0xb534f815 in ?? ()
    #23 0xb534f7d5 in ?? ()
    #24 0xb68e8471 in ?? ()
    #25 0xb68e8550 in ?? ()
    #26 0x08061328 in ?? ()
    #27 0x0813c890 in mono_runtime_invoke ()
    #28 0x0814045b in mono_runtime_exec_main ()
    #29 0x081406e2 in mono_runtime_run_main ()
    #30 0x080b2f99 in mono_main ()
    #31 0x08059385 in ?? ()
    #32 0xb75ffce7 in __libc_start_main () from /lib/libc.so.6
    #33 0x080592c1 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.
    =================================================================
    Forse è un problema stupido ma di C# so pochissimo visto che ho sempre programmato in C. Grazie in anticipo

  2. #2
    mmm.. se nessuno ha idea di cosa potrebbe essere per lo meno qualcuno potrebbe dirmi se eseguendo un codice simile gli succede lo stesso errore?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.