Segmenteringsfeil pga CAD applikasjon?

Annen programvare du prøver å kjøre under Linux, inklusive WINE

Segmenteringsfeil pga CAD applikasjon?

Innleggav terjejh » ons 24.02.2010 17:18

På den ene og nyeste av mine tre maskiner, får jeg segmenteringsfeil ved forsøk på oppstart av en CAD applikasjon (Medusa4 Personal), som så avbrytes:
Kode: Merk alt
Segmentation fault
    mxInterface : received data error

Dette er en 32bit applikasjon som starter greitt både på 32bit og 64bit SUSE Linux på to andre maskiner. På den tredje maskinen har jeg prøvd både 32bit og 64bit installasjoner, men får segmenteringsfeil på begge. Denne maskinen har 4G RAM (de to andre har hhv. 584MB og 2G). Har prøvd å kjøre bios analyseprogrammer på minne og disk uten å finne feil. Tilsvarende har jeg også kjørt Memtest fra Linux uten feil.

Vanlige årsaker til segmenteringsfeil (segmentation violation) sies å være
    programming error
    mismatched binary and libraries
    hardware or hardware configuration issue
Medusa4 Personal tror jeg benytter en del statisk linkede biblioteker (om ikke nødvendige biblioteker finnes dynamisk) for at samme binær skal kunne kjøres på flere forskjellige Linux distribusjoner. Det kan selvsagt ligge noe her eller også en bug i programmet. Det merkelige er likevel at det oppstår bare på min ene maskin.

Har man noen verktøy for å feilsøke problemet; dvs. finne ut om feilen skyldes maskinvaren eller applikasjonen eller annet?

Edit:
En ting jeg kom til å tenke på:
Hvis feilen har sammenheng med øvre del av RAM ved 4G (feil minneadressering el.a), går det an å deaktivere halve RAM mengden i BIOS og prøve med det, uten fysisk å fjerne den ene RAM brikken?

Erfaren
Brukerens avatar
medlem i 216 måneder
 

Re: Segmenteringsfeil pga CAD applikasjon?

Innleggav moma » ons 24.02.2010 20:28

Hei,
Et interessant spørsmål.

Kan du sjekke med "ldd" kommando hvilke biblioteker den referer til. Jeg husker fra tidligere at Medusa starter kjørefilen via et par shellskript. Så du må begynne fra startup-ikonet eller menyvalget, lese kommandoen og nøste videre fra det.

Sjekk filen med "file" kommando (er det shellskript eller ELF kjørbar?)
$ file /opt/medusa4_personal_v4_0/medsys/med/run/mx
/opt/medusa4_personal_v4_0/medsys/med/run/mx: ELF 32-bit LSB executable
og
$ ldd /opt/medusa4_personal_v4_0/medsys/med/run/mx
libQtCore.so.4 => /usr/lib32/libQtCore.so.4 (0xf74d9000)
libQtXml.so.4 => /usr/lib32/libQtXml.so.4 (0xf7496000)
libX11.so.6 => /usr/lib32/libX11.so.6 (0xf7366000)
libgfortran.so.1 => not found
libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf7274000)

Den ser ut til å lete etter 32bit biblioteker (kjører 64bit Ubuntu). Altså "ia32-libs" pakken er viktig. Libgfortran ser ut til å mangLe på denne maskinen.

Kan være nyttig å sammenligne listene fra to ulike maskiner.

Les også denne: http://forum.medusa4.com/YaBB.pl?num=1252608296/8

Erfaren
Brukerens avatar
medlem i 235 måneder
 

Re: Segmenteringsfeil pga CAD applikasjon?

Innleggav terjejh » tor 25.02.2010 2:09

Hei,
Jeg har ikke kommet noe lenger i å finne feilårsaken.
Iflg. Release Notes for Medusa4 v. 4.0 (kjøpingsversjonen) støttes bare RHEL5 WS med gcc 4.1.2 og gfortran 4.1.2. Antar d.s gjelder Personal versjonen, selv om den skal fungere på flere Linux versjoner. På Suse er det litt nyere versjon gcc 4.3, og på 64bit maskinen der Medusa kjører er heller ikke fortran installert.

Nettopp for å unngå problematikken 32bit vs 64bit biblioteker, prøvde jeg som nevnt også å installere 32bit Suse, men samme segmenterings feil oppstod ved oppstart på min hp8710w bærbare. På to andre maskiner fungerer det greitt på hhv. i586 og x86_64 Suse.

Her resultatene fra kommandoene fra hp8710w med openSUSE 11.2 x86_64:
Kode: Merk alt
terje@linux-hudi:/home/medusa4p/medusa4_personal_v4_0> file medsys/med/run/mx
medsys/med/run/mx: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped

Kode: Merk alt
terje@linux-hudi:/home/medusa4p/medusa4_personal_v4_0> ldd medsys/med/run/mx
   linux-gate.so.1 =>  (0xffffe000)
   libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xf7564000)
   libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xf7521000)
   libX11.so.6 => /usr/lib/libX11.so.6 (0xf73ec000)
   libgfortran.so.1 => /usr/lib/libgfortran.so.1 (0xf736c000)
   libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xf727b000)
   libm.so.6 => /lib/libm.so.6 (0xf7252000)
   libc.so.6 => /lib/libc.so.6 (0xf70f2000)
   libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf70d3000)
   libz.so.1 => /lib/libz.so.1 (0xf70bf000)
   libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xf70b9000)
   librt.so.1 => /lib/librt.so.1 (0xf70ae000)
   libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xf6fe7000)
   libpthread.so.0 => /lib/libpthread.so.0 (0xf6fcd000)
   libdl.so.2 => /lib/libdl.so.2 (0xf6fc8000)
   libxcb.so.1 => /usr/lib/libxcb.so.1 (0xf6fa9000)
   /lib/ld-linux.so.2 (0xf77c4000)
   libpcre.so.0 => /lib/libpcre.so.0 (0xf6f79000)
   libXau.so.6 => /usr/lib/libXau.so.6 (0xf6f75000)

Her også biblioteker som installeres med Medusa4P, uten at jeg vet om de egentlig brukes
Kode: Merk alt
terje@linux-hudi:/home/medusa4p/medusa4_personal_v4_0> ls -la medsys/med/share
totalt 15220
drwxr-xr-x  4 root root     4096 2010-02-24 23:49 .
drwxr-xr-x 13 root root     4096 2009-12-16 00:00 ..
-rwxr-xr-x  1 root root      297 2009-10-28 12:11 createsoftlinks
-rwxr-xr-x  1 root root   107320 2009-10-28 12:11 libg2c.so.0
lrwxrwxrwx  1 root root       16 2010-02-24 23:49 libgfortran.so -> libgfortran.so.1
-rwxr-xr-x  1 root root   520040 2009-10-28 12:11 libgfortran.so.1
lrwxrwxrwx  1 root root       14 2010-02-24 23:49 libQtCore.so -> libQtCore.so.4
-rwxr-xr-x  1 root root  2346868 2009-10-28 12:11 libQtCore.so.4
lrwxrwxrwx  1 root root       13 2010-02-24 23:49 libQtGui.so -> libQtGui.so.4
-rwxr-xr-x  1 root root 10316020 2009-12-16 00:00 libQtGui.so.4
-rwxr-xr-x  1 root root  1141060 2009-10-28 12:11 libQtNetwork.so.4
lrwxrwxrwx  1 root root       16 2010-02-24 23:49 libQtOpenGL.so -> libQtOpenGL.so.4
-rwxr-xr-x  1 root root   553676 2009-10-28 12:11 libQtOpenGL.so.4
-rwxr-xr-x  1 root root   239604 2009-10-28 12:11 libQtSql.so.4
lrwxrwxrwx  1 root root       13 2010-02-24 23:49 libQtXml.so -> libQtXml.so.4
-rwxr-xr-x  1 root root   281344 2009-10-28 12:11 libQtXml.so.4
drwxr-xr-x 11 root root     4096 2009-12-16 00:00 plugins
drwxr-xr-x  2 root root     4096 2009-12-16 00:00 translations


Så i hht forslag jeg fikk på denne Medusa forum posten
http://forum.medusa4.com/YaBB.pl?num=1266112586/3#3
Kode: Merk alt
terje@linux-hudi:/home/medusa4p/medusa4_personal_v4_0/master_project> /bin/csh
medusa4_personal_v4_0/master_project> source login

Kode: Merk alt
medusa4p/medusa4_personal_v4_0> ldd med2d/m2d/run/draft
   linux-gate.so.1 =>  (0xffffe000)
   libQtCore.so.4 => /home/medusa4p/medusa4_personal_v4_0/medsys/med/share/libQtCore.so.4 (0xf7539000)
   libQtGui.so.4 => /home/medusa4p/medusa4_personal_v4_0/medsys/med/share/libQtGui.so.4 (0xf6b63000)
   libQtOpenGL.so.4 => /home/medusa4p/medusa4_personal_v4_0/medsys/med/share/libQtOpenGL.so.4 (0xf6adc000)
   libQtXml.so.4 => /home/medusa4p/medusa4_personal_v4_0/medsys/med/share/libQtXml.so.4 (0xf6a95000)
   libGLU.so.1 => /usr/lib/libGLU.so.1 (0xf69fc000)
   libGL.so.1 => /usr/X11R6/lib/libGL.so.1 (0xf693d000)
   libXt.so.6 => /usr/lib/libXt.so.6 (0xf68e1000)
   libX11.so.6 => /usr/lib/libX11.so.6 (0xf67ac000)
   libgfortran.so.1 => /home/medusa4p/medusa4_personal_v4_0/medsys/med/share/libgfortran.so.1 (0xf672b000)
   libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xf663b000)
   libm.so.6 => /lib/libm.so.6 (0xf6612000)
   libc.so.6 => /lib/libc.so.6 (0xf64b2000)
   libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf6493000)
   libpthread.so.0 => /lib/libpthread.so.0 (0xf6479000)
   libdl.so.2 => /lib/libdl.so.2 (0xf6473000)
   libz.so.1 => /lib/libz.so.1 (0xf645f000)
   libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xf6459000)
   libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xf6392000)
   librt.so.1 => /lib/librt.so.1 (0xf6388000)
   libpng12.so.0 => /usr/lib/libpng12.so.0 (0xf635d000)
   libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xf62db000)
   libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xf6298000)
   libSM.so.6 => /usr/lib/libSM.so.6 (0xf628f000)
   libICE.so.6 => /usr/lib/libICE.so.6 (0xf6274000)
   libXrender.so.1 => /usr/lib/libXrender.so.1 (0xf6269000)
   libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xf6234000)
   libXext.so.6 => /usr/lib/libXext.so.6 (0xf6222000)
   libGLcore.so.1 => /usr/X11R6/lib/libGLcore.so.1 (0xf5187000)
   libnvidia-tls.so.1 => /usr/lib/tls/libnvidia-tls.so.1 (0xf5185000)
   libxcb.so.1 => /usr/lib/libxcb.so.1 (0xf5166000)
   /lib/ld-linux.so.2 (0xf7776000)
   libpcre.so.0 => /lib/libpcre.so.0 (0xf5136000)
   libuuid.so.1 => /lib/libuuid.so.1 (0xf5131000)
   libexpat.so.1 => /lib/libexpat.so.1 (0xf510a000)
   libXau.so.6 => /usr/lib/libXau.so.6 (0xf5106000)

Erfaren
Brukerens avatar
medlem i 216 måneder
 

Re: Segmenteringsfeil pga CAD applikasjon?

Innleggav thorak » tor 25.02.2010 19:51

Innstaller strace og se hvor du får segfaulten.

Kode: Merk alt
strace <prgnavn>

Brukerens avatar
medlem i 232 måneder
 

Re: Segmenteringsfeil pga CAD applikasjon?

Innleggav terjejh » tor 25.02.2010 21:02

Sier dette noe mer?
Kode: Merk alt
mxInterface : received data error
                                 )                       = ? ERESTARTNOHAND (To be restarted)
                                                                                             --- SIGCHLD (Child exited) @ 0 (0) ---

rt_sigreturn(0x11)                      = -1 EINTR (Interrupted system call)
wait4(4294967295, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV}], WNOHANG, {ru_utime={0, 166974}, ru_stime={0, 118981}, ...}) = 4870
wait4(4294967295, 0x7fffd9e3e7d0, WNOHANG, 0x7fffd9e3e740) = -1 ECHILD (No child processes)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
write(17, "Segmentation fault\n", 19Segmentation fault
)   = 19
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
read(16, "", 4096)                      = 0
lseek(16, 0, SEEK_CUR)                  = 345
ioctl(16, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffd9e3eda0) = -1 ENOTTY (Inappropriate ioctl for device)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
exit_group(139)                         = ?

Erfaren
Brukerens avatar
medlem i 216 måneder
 

Re: Segmenteringsfeil pga CAD applikasjon?

Innleggav moma » tor 25.02.2010 21:48

Hei,
Jeg kom til å tenke på om LD_LIBRARY_PATH har noe å si.
Du kan prøve å sette
$ setenv LD_LIBRARY_PATH=/home/medusa4p/medusa4_personal_v4_0/medsys/med/share
(kan du sjekke om den ble riktig. uansett, den skal peke på share'd katalogen)
og start Medusa fra kommandolinjen.

Google for LD_LIBRARY_PATH + Medusa.

Default søkepath for biblioteker er satt i /etc/ld.so.conf. Hvis du gjør endringer der, oppdater også bibliotekcachen i minnet. Kjør sudo ldconfig (med eller uten -vv).

Erfaren
Brukerens avatar
medlem i 235 måneder
 

Re: Segmenteringsfeil pga CAD applikasjon?

Innleggav terjejh » tor 25.02.2010 23:50

moma skrev:Hei,
Jeg kom til å tenke på om LD_LIBRARY_PATH har noe å si.
Du kan prøve å sette
$ setenv LD_LIBRARY_PATH=/home/medusa4p/medusa4_personal_v4_0/medsys/med/share
(kan du sjekke om den ble riktig. uansett, den skal peke på share'd katalogen) og start Medusa fra kommandolinjen.

Jeg prøvde - men desverre, ingen forskjell.
(syntax: csh 'setenv' bruker ikke '=')
Denne LD_LIBRARY_PATH m.fl. settes dessuten gjennom Master prosjektets 'login' fil som sources av 'startmedusa' skriptet.

Jeg prøvde dretter å legge til LD_LIBRARY_PATH '/usr/lib' (32bit libs på Suse), da jeg så på Medusa forumet dette hadde vært gjort i en annen sammenheng (font).

Segmenteringsfeilen oppstår under oppstart av Medusa, rett etter 'Creating GUI' teksten på oppstartbildet, dvs. når 'Initialising Application' begynner.... Forsøk med en påfølgende oppstart, medfører gjerne en tredje feilmelding i terminalen slik:
Kode: Merk alt
Segmentation fault
             mxInterface : received data error
tcsetattr failed error 5

Erfaren
Brukerens avatar
medlem i 216 måneder
 


Returner til Annen programvare / Spill



Hvem er i Forumene

Registrerte brukere: Google [Bot]



cron