amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > wipeout [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2008-04-19, 01:23 h

selco
Posts: 64
User
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... :(

[ - Answer - Quote - Direct link - ]

2008-04-19, 11:35 h

Wishmaster
Posts: 140
User
@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

[ - Answer - Quote - Direct link - ]

2008-04-19, 12:47 h

selco
Posts: 64
User
@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

[ - Answer - Quote - Direct link - ]

2008-04-19, 15:07 h

thomas
Posts: 7718
User

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/

[ - Answer - Quote - Direct link - ]

2008-04-27, 21:29 h

selco
Posts: 64
User
@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?

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > wipeout [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.