Springen naar inhoud

(programmeren) "Segmentation Fault"


  • Log in om te kunnen reageren

#1

Brownie

    Brownie


  • >250 berichten
  • 292 berichten
  • Ervaren gebruiker

Geplaatst op 18 januari 2006 - 15:14

Het volgende probleem ben ik al bij programma's in verschillende talen tegengekomen, maar ik begrijp niet waar het voor staat.

Na het compileren van een code, wat overigens geen fouten geeft, crashed het programma na opstarten en geeft "segmentation fault" zonder enige verdere uitleg.
Wat betekent dit? Wat voor soort probleem is dit en waar moet ik de oorzaak zoeken?
"Not everything that can be counted counts, and not everything that counts can be counted." (A. Einstein)

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 18 januari 2006 - 15:52

Wat betekent dit? Wat voor soort probleem is dit en waar moet ik de oorzaak zoeken?


Het betekent dat je probeert een geheugenadres te lezen of te schrijven waar je geen gebruik van mag maken (dacht ik). Ben je toevallig met pointers in de weer?

#3

Brownie

    Brownie


  • >250 berichten
  • 292 berichten
  • Ervaren gebruiker

Geplaatst op 18 januari 2006 - 16:21

Wat betekent dit? Wat voor soort probleem is dit en waar moet ik de oorzaak zoeken?


Het betekent dat je probeert een geheugenadres te lezen of te schrijven waar je geen gebruik van mag maken (dacht ik). Ben je toevallig met pointers in de weer?

Ja, ook dat. Iemand anders vertelde me dat ik waarschijnlijk ergens een niet geldige index gebruikte in een array. Een pointer zou dan ook goed kunnen natuurlijk.
Het doet zich voor op het moment dat ik een C-routine aanroep vanuit een IDL-code. Het merkwaardige is dat als ik de boel compileer met IDL 5.3 er geen probleem is. Als ik het compileer met IDL 6.0 dan gebeurt het wel.
"Not everything that can be counted counts, and not everything that counts can be counted." (A. Einstein)

#4

Rogier

    Rogier


  • >5k berichten
  • 5679 berichten
  • VIP

Geplaatst op 18 januari 2006 - 16:23

Ja, ook dat. Iemand anders vertelde me dat ik waarschijnlijk ergens een niet geldige index gebruikte in een array. Een pointer zou dan ook goed kunnen natuurlijk.

Da's hetzelfde :roll:
In theory, there's no difference between theory and practice. In practice, there is.

#5

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 18 januari 2006 - 16:28

Ja, ook dat. Iemand anders vertelde me dat ik waarschijnlijk ergens een niet geldige index gebruikte in een array. Een pointer zou dan ook goed kunnen natuurlijk.
Het doet zich voor op het moment dat ik een C-routine aanroep vanuit een IDL-code. Het merkwaardige is dat als ik de boel compileer met IDL 5.3 er geen probleem is. Als ik het compileer met IDL 6.0 dan gebeurt het wel.


Gaat het hier om de nul-index van een array. Het kan zijn dat je die apart moet specificeren en dat "a(100)" geen goede declaratie is. Voor Fortran geld dit namelijk. De ene compiler neemt de nul-index standaard mee en de ander niet. Dan wordt het dus "a(0:100)".
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

#6

jbeckers

    jbeckers


  • 0 - 25 berichten
  • 4 berichten
  • Gebruiker

Geplaatst op 19 januari 2006 - 17:32

compileren met verschillende compilers is bijna nooit een goed idee (toch niet als ge uw gecompileerde bestanden daarna door mekaar gaat gebruiken). het zou dus kunnen dat ge met die idl 5.3 en 6.0 de zaken enkel erger maakt. 't is maar dat ge het weet.

anderzijds, idl, is dat niet iets dat gebruikt wordt om c en java e.d. uit te genereren? in dat geval is er op idl-niveau helemaal geen bytecode in het spel, en moet ge de oorzaak bij uw c-compiler zoeken.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures