home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: de.comp.os.unix
- Path: sparky!uunet!utcsri!skule.ecf!torn!spool.mu.edu!nigel.msen.com!math.fu-berlin.de!news.netmbx.de!news.Hamburg.Germany.EU.net!oops.zigzag.hanse.de!fs
- From: fs@oops.zigzag.hanse.de (Frank Seitz)
- Subject: Re: Teile des Heaps r/o machen? Aufsetzen nach SIGSEGV?
- Message-ID: <1992Dec27.013809.25893@oops.zigzag.hanse.de>
- Organization: OOPS (Netzwerke/Datenbanksysteme/Sprachverarbeitung)
- X-Newsreader: TIN [version 1.1 PL6]
- References: <1992Dec26.104939.11407@omega.ssw.de>
- Date: Sun, 27 Dec 1992 01:38:09 GMT
- Lines: 53
-
- Andreas Vogel (av@omega.ssw.de) wrote:
- : Eine Seite holt man sich mit mmap(),
-
- Hmm, kenn ich zwar nicht, wird aber sicher in den SVR4 Manpages
- zu finden sein, right?
-
- : und den SIGSEGV behandelt man in einem Signal Handler.
- : Nach Abarbeitung des Handlers geht die Programmausfuehrung ganz normal weiter,
- : wo ist da das Problem?
-
- Das ist nach meiner Erfahrung nicht richtig. Ein Return aus einem
- SIGSEGV-Handler fuehrt zu einem erneuten SIGSEGV, nicht aber zur
- Fortsetzung des Programms. Das gilt selbst dann, wenn man
- den korrupten Speicherzugriff im Handler "korrigiert".
- Folgendes Programm fuehrt (unter SVR3.2) zu einer "Totschleife",
- in der der der SIGSEGV-Handler h() unendlich oft aufgerufen wird.
- Zur Ausfuehrung der Anweisung ,,printf("byebye...\n")'' kommt es
- nie:
-
- #include <signal.h>
-
- #define BADADDR 0xfffffff
- int *i = (int *)BADADDR, j, h();
-
- main()
- {
- signal(SIGSEGV, h);
- *i = 4711;
- printf("byebye...\n");
- }
-
- h(n)
- int n;
- {
- printf("sigsegv!\n");
- i = &j;
- signal(SIGSEGV, h);
- }
-
- : Ich habe diese Art von Demand Paging in meinem System Monitior svr4mon
- : implementiert und es funktioniert sehr gut. Der Code, der das Demand Paging
- : behandelt ist ca. 50 Zeilen lang. Wenn du Interesse hast, dann schau ihn dir
- : einfach mal an (paging.c). Svr4mon wurde vor einiger Zeit in alt.sources
- : geposted.
-
- Danke fuer den Hinweis. Allerdings ging es mir mehr um einen
- lockeren Gedankenaustausch. Weniger um die Suche/Exegese von
- "irgendwelchem" (also nicht direkt diskussionsbezogenem) Sourcecode...
-
- Gruss,
- --
- Frank Seitz, Hamburg, +49-40-7927569, {fs,root,postmaster}@oops.zigzag.hanse.de
- Wilder muss es sein.
-