Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5120[/thread]

script mit Tk - segmentation fault



<< |< 1 2 >| >> 17 Einträge, 2 Seiten
pq
 2005-11-07 19:34
#44872 #44872
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
hallo,
seit ich unter ubuntu ein kernel-update gemacht habe, stürzt mir tktimex
immer dann ab, wenn ich z.b. ein neues evolution- oder ein neues synaptic-
fenster aufmache.
die letzten einträge im strace sind
Code: (dl )
1
2
3
4
5
6
readv(3, [{"_GTK_LOAD_ICONTHEMES", 20}, {"", 0}], 2) = 20
select(4, [3], [], [], {294, 912170})   = 1 (in [3], left {294, 721000})
ioctl(3, FIONREAD, [32])                = 0
read(3, "\241 \364\r\1\0\340\1.\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 32) = 32
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++              


sagt das irgendjemandem irgendwas? ich weiß echt nicht, was ich machen soll.
ubuntu-version ist 5.10 (breezy).
perl 5.8.7
Tk 804.027

edit: muss nicht tktimex sein, kann auch ein anderes, simples programm sein,
etwa Tk-Date-0.42/examples/simpleclock\n\n

<!--EDIT|pq|1131385134-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
ptk
 2005-11-08 00:21
#44873 #44873
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Wurde mit dem Kernel-Update auch ein X-Update gemacht? Oder von Gtk oder Gnome? Dein strace-Log sieht nach X11-Kommunikation aus. Vielleicht hilft ein gdb-Backtrace eher?

PS: Bei tktimex gibt es auch ein Konsoletool ctimex. Aber ich habe auch schon vergessen, wie man das nutzt (-> Sicherheitskopie der .pj1-Datei ratsam!)
pq
 2005-11-08 01:30
#44874 #44874
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
ah danke, ich gucke mir das morgen mal an...
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
ptk
 2005-11-08 02:07
#44875 #44875
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Kannst du es auch mit einem Minimalskript
Code: (dl )
perl -MTk -e 'tkinit;MainLoop'
reproduzieren (evtl. musst du nur mit die Maus über das Fenster bewegen)?
pq
 2005-11-08 11:09
#44876 #44876
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=ptk,08.11.2005, 01:07]Kannst du es auch mit einem Minimalskript
Code: (dl )
perl -MTk -e 'tkinit;MainLoop'
reproduzieren (evtl. musst du nur mit die Maus über das Fenster bewegen)?[/quote]
ja, derselbe fehler.
das ctimex ist auch nur für notfälle, damit kann ich ja gar keine projekte
erstellen.
wie starte ich denn den gdb mit dem tk-minimal-programm?

was mit dem kernel-update noch so alles geupdated wurde, müsste ich
erstmal rausfinden, ich hab einfach auf den kleinen roten knopf rechts
open in der gnome-leiste geklickt =)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
ptk
 2005-11-08 13:57
#44877 #44877
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Entweder einfach
Code: (dl )
gdb perl /path/to/tktimex
oder die Limits für Core-Files hochsetzen und nachträglich den Core-File analysieren:
Code: (dl )
gdb perl core.<pid>
.
pq
 2005-11-08 15:10
#44878 #44878
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
hmm.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
tina@lugosi:~$ cat mainloop 
#!/usr/bin/perl
use strict;
use warnings;
use Tk;
tkinit;
MainLoop;
tina@lugosi:~$ gdb perl mainloop
GNU gdb 6.3-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".

"/home/tina/mainloop" is not a core dump: File format not recognized
(gdb)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
betterworld
 2005-11-08 16:58
#44879 #44879
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
[quote=ptk,08.11.2005, 12:57]
Code: (dl )
gdb perl core.<pid>
.[/quote]
Sollte das "perl" da wirklich stehen? Die Core-Files muessten doch eigentlich alleinstehend sein.
ptk
 2005-11-08 17:06
#44880 #44880
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ach stimmt, das ging bei Perl-Skripten anders:
Code: (dl )
1
2
3
4
5
gdb perl
set args skriptname
run
.... und nach dem Segmentation Fault ...
bt
ptk
 2005-11-08 17:10
#44881 #44881
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=betterworld,08.11.2005, 15:58][quote=ptk,08.11.2005, 12:57]
Code: (dl )
gdb perl core.<pid>
.[/quote]
Sollte das "perl" da wirklich stehen? Die Core-Files muessten doch eigentlich alleinstehend sein.[/quote]
Möglicherweise kann gdb erkennen, welches Programm das Core-File erzeugt hat. Dann dürfte
Code: (dl )
gdb core.pid
tatsächlich ausreichen. Ich mache es aber immer so, wie ich es auch geschrieben habe.
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2005-11-07 19:34.