[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: *** glibc detected *** apt-get: double free or corruption



On Tue, 16 Aug 2011 00:30:03 +0200 (CEST)
georg@riseup.net wrote:

> Das Problem tritt auch reproduzierbar (d.h. bei jedem Aufruf, aktuell
> immer noch) auf. Deswegen bezweifle ich aktuell, dass es sich einfach
> von selber löst...

bei jedem Aufruf von?

        ulimit -c unlimited

sollte sicher stellen, daß core dumps geschrieben werden. Dann den
Aufruf wiederholen und das Programm auflaufen lassen. Danach solltest du
eine Datei haben, die "core" (eventuell gefolgt von einer Zahl) heißt.
Wenn du immer noch nicht weißt, welches Programm das ist, dann:

        strings core | less

Blätter da ein wenig herum. Du solltest eine Kopie vom environment
finden, im Prinzip das gleiche, was auch printenv(1) ausgibt. Aber
danach sollte der Name des Programms, gefolgt von den Argumenten (argv)
des Aufrufs kommen. Und damit solltest du das Programm auch gefunden
haben und kannst bei dessen Autor an die Tür klopfen.

Wenn du das Programm mit debugging info hast, dann kannst du auch

        gdb prg core

also den Pfadnamen vom Programm und die core-Datei, aufrufen und darin
herumstöbern. Wahrscheinlich gibt es in der Nähe auch ein free() das
stinkt. Alternativ kannst du das Programm mit den gleichen Argumenten
unter valgrind laufen lassen; der sagt dann auch, wo Speicher zum
ersten und zum zweiten Mal befreit wurde.

... es sei denn, du hast fehlerhaften Speicher der ausgetauscht werden
muß.


Reply to: