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
> 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
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
> 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
> 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
| 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
Vielen, vielen Dank Heiko!!!!
In der Datei /etc/profile stand folgendes:
[...]
ulimit -c 0
[...]
War ja klar dass das nocht funktionieren konnte:)
chris
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)
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)