amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > wipeout [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

19.04.2008, 01:23 Uhr

selco
Posts: 64
Nutzer
Hallo,
kann mir jemand die Verwendung des Tools wipeout erklären? An einem Beispiel? Welche Fehler kann man damit finden? (C-Beispiel) Was muß man dazu machen? Kommen die Hits "von alleine" oder muß man das irgendwie abrufen? Ich scheine da irgendwas nicht zu verstehen... :(

[ - Antworten - Zitieren - Direktlink - ]

19.04.2008, 11:35 Uhr

Wishmaster
Posts: 140
Nutzer
@selco:
Wipeout ist ein Ersatz für Mungwall. Es überwacht, ob die Grenzen von Speicherbereichen überschrieben werden, inklusive Mempools.
Die Ausgabe erfolgt über die Serielle Schnittstellle oder mittels Sashimi in einem Konsolefenster.
--
Pegasos MorphOS

[ - Antworten - Zitieren - Direktlink - ]

19.04.2008, 12:47 Uhr

selco
Posts: 64
Nutzer
@Wishmaster:
Ja, ok. Aber wann bekomme ich denn nun einen Hit? Ich allockiere z.B. ein Feld mit 23 Bytes (C, malloc) und schreibe dann 256 Bytes rein. Ich bekomme aber keinen Hit! Oder muß ich den erst mit "check" antrigggern? Auch dann bekomme ich nichts Vernünftiges. Nach malloc steht immerhin erst mal deadfood in meinem Speicher, wie beschrieben, ok. Allersings nicht nur 23 Bytes sondern 256 Bytes! Also wird ein Überschreiben eines kleinen Buffers gar nicht angemeckert? Haben malloc-Pufffer denn Standardgrößen oder bekomme ich wirklich, was ich allockiert habe? Liefert mein malloc(23) nun einen 23 Bytes Puffer, oder einen 256 Byte Puffer oder gar noch mehr? Wenn ich jetzt 260 Bytes in meinen viel zu kleinen Puffer schreibe, passiert immer noch nichts! Eigentlich sollte ich doch den "Wall" zerstört habben! (Sashimi ist an, eine Startmeldung von wipeout kam auch) Wenn ich jetzt free() aufrufe, sollte der Puffer mit deadbeef gefüllt werden, laut Anleitung. Passiert aber nicht, nach dem free steht noch das drin, was ich reingeschrieben hatte. Also, ich bekomme keine Hits beim Schreiben über (meine) Buffergrenze und nach free steht NICHT deadbeef drin. Was mache ich denn nun falsch? Gibt es nicht irgendwo ein Schritt-Für-Schritt Beispiel?

MfG selco, http://selco.da.ru

[ - Antworten - Zitieren - Direktlink - ]

19.04.2008, 15:07 Uhr

thomas
Posts: 7678
Nutzer

In deinem anderen Thread schreibst du, daß du sashimi mit >dateiname startest. Da siehst du natürlich nichts, solange Sashimi noch läuft, weil die Datei die ganze Zeit exklusiv im Zugriff ist. Du solltest Sashimi mit einem Fenster starten, damit du sofort eine Ausgabe siehst.

Zudem bindet sich Wipeout in die exec.library ein (AllocMem / AllocVec etc.). Du benutzt jedoch Funktionen der C-Runtime (malloc / free). Kann schon sein, daß die Runtime kleinere Allokationen optimiert. Du solltest zum Testen lieber direkt die exec-Funktionen benutzen.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

27.04.2008, 21:29 Uhr

selco
Posts: 64
Nutzer
@thomas:
Ja, es scheint so, dass malloc und free da irgendwie optimiert werden. Sashimi habe ich jetzt wieder in einem Fenster gestartet, das sieht zuverlassiger /direkter aus.

Wenn ich wipeout ganz zu Beginn starte, darf wipeout nach einem OS3.9 BB2 Start dann irgendwelche Hits ausgeben (u.U. bekannte aber harmlose Fehler? orphaned memory) oder muss alles "sauber" sein?

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > wipeout [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2022 by amiga-news.de - alle Rechte vorbehalten.
.