home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / de / comp / os / unix / 2562 < prev    next >
Encoding:
Text File  |  1992-12-30  |  2.1 KB  |  48 lines

  1. Newsgroups: de.comp.os.unix
  2. Path: sparky!uunet!math.fu-berlin.de!Germany.EU.net!news.Hamburg.Germany.EU.net!malihh!heaven7.in-berlin.de!martini
  3. From: martini@heaven7.in-berlin.de (Martin P. Ibert)
  4. Subject: Re: Teile des Heaps r/o machen? Aufsetzen nach SIGSEGV?
  5. Message-ID: <HZA0YZH@heaven7.in-berlin.de>
  6. Date: Wed, 30 Dec 1992 08:39:53 GMT
  7. Content-Transfer-Encoding: 8bit
  8. References: <1992Dec27.013809.25893@oops.zigzag.hanse.de>
  9. Content-Type: text/plain; charset=ISO-8859-1
  10. Mime-Version: 1.0
  11. Organization: The Seventh Heaven, Berlin, Germany
  12. Lines: 34
  13.  
  14. fs@oops.zigzag.hanse.de (Frank Seitz) writes:
  15. > Das ist nach meiner Erfahrung nicht richtig. Ein Return aus einem
  16. > SIGSEGV-Handler fuehrt zu einem erneuten SIGSEGV, nicht aber zur
  17. > Fortsetzung des Programms. Das gilt selbst dann, wenn man
  18. > den korrupten Speicherzugriff im Handler "korrigiert".
  19.  
  20. Das ist nicht unbedingt richtig.
  21.  
  22. > Folgendes Programm fuehrt (unter SVR3.2) zu einer "Totschleife",
  23. > in der der der SIGSEGV-Handler h() unendlich oft aufgerufen wird.
  24. > Zur Ausfuehrung der Anweisung ,,printf("byebye...\n")'' kommt es
  25. > nie:
  26.  
  27. Das ist bei mir auch so, aber sehen wir uns einmal den Assemblercode an!
  28.  
  29.     mov.l i,%a0
  30.     mov.l &4711,(%a0)
  31.  
  32. Das ist die Stelle, an der es raucht. Das erste mov.l wird ausgefuehrt.
  33. Okay, easy, 0 problemo. Das zweite mov.l wird ausgefuehrt. RAWUMM!! Nun
  34. kommt Dein Handler her und veraendert den Wert von i. Jetzt wird das
  35. Programm _mit_dem_zweiten_mov.l_ wieder aufgesetzt. Es bringt nichts, den
  36. Wert von i zu veraendern, der ist zu dem Zeitpunkt naemlich schon in einem
  37. Register und wird nicht mehr veraendert.
  38.  
  39. Haette man stattdessen den Zugriff auf die Adresse erlaubt, auf die i zeigt,
  40. wuerde es vermultlich gehen. Dh Dein Programm ist kein Argument gegen die
  41. skizzierte Loesung des urspruenglichen Problems.
  42. -- 
  43.     __*__     | Martin Ibert, Westendallee 100 d, D-1000 Berlin 19, Germany
  44. ----|   |---- | Phone: +4930-3056541 - E-Mail: martini@heaven7.in-berlin.de
  45. ============= | -----------------------------------------------------------
  46. | | |   | | | |        "Blind faith in your leaders, or in anything,
  47. | | |   | | | |          will get you killed." (Bruce Springsteen)
  48.