Individuare l'accesso cattiva memoria su Solaris
-
18-09-2019 - |
Domanda
In Linux, FreeBSD e altri sistemi che ho valgrind per la verifica di errori di memoria come invalido letture e simili. Mi piace molto valgrind. Ora devo testare il codice su Solaris / OpenSolaris e non riesco a trovare un modo per ottenere informazioni su validi letture / scritture in modo così bello (o meglio ;-)) come valgrind lì.
Durante la ricerca di questo sulla rete ho trovato riferimenti a libumem , ma ottengo solo notizie di perdite di memoria lì, non l'accesso non validi. Che cosa mi manca?
Soluzione
Il dbx incluso con i compilatori Sun Studio include l'accesso di memoria check sostegno nella sua "Run Time Checking" caratteristica (il sottocomando check
). Vedi:
- Solaris Studio 12.4 dbx manuale: Capitolo 9: Utilizzo di Runtime Controllo
- Debug di applicazioni con Sun Studio dbx, dbxtool, e il filo Analyzer
- Weblog di Leonard Li: Runtime Memoria Controllo
Il correlate "Memory Error Sun Discovery Tool" è disponibile anche http://cooltools.sunsource.net/ scoprire /
Altri suggerimenti
watchmalloc è un molto utile biblioteca che può essere caricato in modo dinamico per il vostro programma (di solito senza bisogno di ricompilazione) e quindi imposta watchpoints in tutte le posizioni di memoria di solito problematici, come le aree liberate o dopo un blocco di memoria allocata. Se il programma accede una di queste aree non valide ottiene un segnale e si può controllare nel debugger.
A seconda della configurazione aree problematiche possono essere guardati in scrittura solo, o anche per legge.
A partire dalla versione 3.11.0, Valgrind viene eseguito su Solaris. Vedere Note di rilascio e piattaforme supportate .
Più precisamente, X 86 / Solaris e amd64 / Solaris è ora supportato. Il supporto per SPARC / Solaris è ancora in opere.