Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

core-dumps??

1 view
Skip to first unread message

Christoph Massmann

unread,
May 13, 2000, 3:00:00 AM5/13/00
to
Hi

ich bekomme, wenn ich ein (C-)Programm mit gcc kompiliert und ausgeführt
habe, die
Fehlermeldung

Segmentation fault

Um die Fehlerstelle im Programm zu finden benutze ich den Debugger
´ddd´. Ich könnte natürlich etliche Break-Points setzen, um den Fehler
zu finden. Noch einfacher würde es aber mit core-Dateien gehen. Die kann
ich nämlich mit einlesen und so gleich die richtige Stelle finden. Bei
meinem System (SuSE Linux 6.0) wird aber kein core-dump erzeugt!!
Ich habe mich auch schon schlau gemacht über einen Befehl, der das
´core-dumpen´ einstellt, nämlich

ulimit -c unlimited

Das funktioniert aber bei mir nicht!! Auch unter anderen Usern auf
meinem System geht es nicht(mit Ausnahme von root)!! Wo liegen die
Einstellungen hierfuer??

Vielen Dank schon mal im Voraus!!

chris

Message has been deleted

Michael Mauch

unread,
May 13, 2000, 3:00:00 AM5/13/00
to
Christoph Massmann <chri...@gmx.de> wrote:

> Ich habe mich auch schon schlau gemacht über einen Befehl, der das
> ´core-dumpen´ einstellt, nämlich
>
> ulimit -c unlimited
>
> Das funktioniert aber bei mir nicht!!

Das ulimit ist eine Funktion der Shell, d.h. es gilt nur für Programme,
die Du in derselben Shell (und evtl. ihren Kindern) startest. Hast Du
auch Schreibrechte in dem Directory, in dem Du das Programm startest?

Viele Grüsse...
Michael

Christoph Massmann

unread,
May 14, 2000, 3:00:00 AM5/14/00
to
Heiko Schlenker wrote:
>
> Was sagt "ulimit -a"?
ulimit -a sagt:

core file size (blocks) 0
data seg size (kbytes) unlimited
file size (blocks) unlimited
max locked memory (kbytes) unlimited
max memory size (kbytes) unlimited
open files 256
pipe size (512 bytes) 8
stack size (kbytes) 8192
cpu time (seconds) unlimited
max user processes 256
virtual memory (kbytes) unlimited

> Verwendet SuSE inzwischen fuer's login PAM? Falls ja, dann schau
> doch mal, ob Du in /etc/pam.d/login einen Eintrag wie
> session required pam_limits.so
> findest.core file size (blocks) 0
Die Datei /etc/pam.d/login gibt´s gar nicht!!

>
> Gruss, Heiko

chris

Christoph Massmann

unread,
May 14, 2000, 3:00:00 AM5/14/00
to
Michael Mauch wrote:

> Das ulimit ist eine Funktion der Shell, d.h. es gilt nur für Programme,
> die Du in derselben Shell (und evtl. ihren Kindern) startest. Hast Du
> auch Schreibrechte in dem Directory, in dem Du das Programm startest?
>
> Viele Grüsse...
> Michael

Vielen Dank fuer deinen Hinweis! Aber ich habe Schreibrechte auf das
Directory!!

Ich weiß nicht aber wo legt der Befehl ulimit seine Daten ueberhaupt ab?
Vielleicht hat auf diese Datei nur root Schreibrechte??

chris

Message has been deleted

Philipp Stampfuss

unread,
May 15, 2000, 3:00:00 AM5/15/00
to
Christoph Massmann wrote:

> Hi
>
> ich bekomme, wenn ich ein (C-)Programm mit gcc kompiliert und ausgeführt
> habe, die
> Fehlermeldung
>
> Segmentation fault
>
> Um die Fehlerstelle im Programm zu finden benutze ich den Debugger
> ´ddd´. Ich könnte natürlich etliche Break-Points setzen, um den Fehler
> zu finden.

Hi,

Du kannst auch einfach keinen Breakpoint setzen, das Programm unter ddd
laufen lassen bis es knallt und dann mit Status->Backtrace zu der Stelle
springen, an der es geknallt hat.

Gruss, Philipp

Uwe.S...@num.uni-sb.de

unread,
May 15, 2000, 3:00:00 AM5/15/00
to

| Hi,

| Gruss, Philipp

oder starte dein programm via strace. kann sein, dass du da
schon siehst, was falsch laeuft.

gruss, uwe.
--
Uwe Schmitt | Institut für Angewandte Mathematik
Uwe.S...@num.uni-sb.de | Universität des Saarlandes
phone: +49 (0)681/302-2468 | Geb. 36.1, Zi. 4.17
fax: +49 (0)681/302-4435 | PF 151150
private: +49 (0)681/397052 | D-66041 Saarbrücken

Christoph Massmann

unread,
May 16, 2000, 3:00:00 AM5/16/00
to
Heiko Schlenker wrote:
>
> > ulimit -a sagt:
> >
> > core file size (blocks) 0
>
> Es duerfen also keine core files angelegt werden.

>
> > Die Datei /etc/pam.d/login gibt´s gar nicht!!
>
> Vielleicht liegt die Datei woanders? Gibt es ueberhaupt ein
> Verzeichnis "/etc/pam.d"?
>
> Ansonsten schau doch bitte mal, wo die Limits gesetzt werden.
> Findest Du entsprechende Anweisungen in "/etc/profile" oder
> "/etc/profile.d/*"?

Vielen, vielen Dank Heiko!!!!
In der Datei /etc/profile stand folgendes:

[...]
ulimit -c 0
[...]

War ja klar dass das nocht funktionieren konnte:)

chris

Andreas Ferber

unread,
May 16, 2000, 3:00:00 AM5/16/00
to
* Philipp Stampfuss <sta...@fkt.physik.uni-dortmund.de> schrieb:

>
> Du kannst auch einfach keinen Breakpoint setzen, das Programm unter ddd
> laufen lassen bis es knallt und dann mit Status->Backtrace zu der Stelle
> springen, an der es geknallt hat.

Schwierig wird das aber dann, wenn im Debugger der Fehler ausgerechnet
nicht mehr auftritt (ist zwar sehr selten, aber es kommt vor).

Bis denn dann

--
Was willst Du da programmieren? 'Internetprogrammierung' ist so sinnvoll,
wie 'Straßenprogrammierung', wenn es doch nur um 'Auto fahren' geht.
(Lutz Donnerhacke in de.org.ccc)

Andreas Ferber

unread,
May 16, 2000, 3:00:00 AM5/16/00
to
* Christoph Massmann <chri...@gmx.de> schrieb:

>
> Ich weiß nicht aber wo legt der Befehl ulimit seine Daten ueberhaupt ab?
> Vielleicht hat auf diese Datei nur root Schreibrechte??

Die werden in der Prozessstruktur im Kernel gespeichert. Jeder
Prozess darf diese für sich und damit alle von ihm später neu
gestarteten Prozesse setzen. Dabei wird zwischen den Hardlimits und
den Softlimits unterschieden. Die Hardlimits können, nachdem sie
einmal gesetzt sind, nur noch verringert werden, nicht mehr erhöht.
Diese werden meist beim Login gesetzt. Die Softlimits können
jederzeit wieder erhöht werden, allerdings können sie die gesetzten
Hardlimits nicht überschreiten.

Bis denn dann

--
Lost the Session Manager that was there?
Here here session manager... come here... want a bone?
Oh come now! Stop sulking! Bugger. Oh well. Will continue without
a session manager. (Enlightenment error message)

0 new messages