Python/Tkinter crash.

Hendrik van Rooyen mail at microcorp.co.za
Wed Oct 4 08:12:40 EDT 2006


Not talking to myself - Added results of strace run at bottom....

"Hendrik van Rooyen" <mail at microcorp.co.za> wrote:

> Hi,
>
> I get the following:
>
> hvr at LINUXBOXMicrocorp:~/Controller/lib> python display.py
> UpdateStringProc should not be invoked for type font
> Aborted
>
> and I am back at the bash prompt - this is most frustrating, as there is no
> friendly traceback to help me guess where its coming from.
>
> And what is worse, the script runs for a varying time before it simply exits
> like this.
>
> What can I do to dig deeper to try to find a clue? - I don't even know if its
> Python, Tkinter or Linux...
>
> Some background:
>
> The application is a prototype gui for a controller of an injection moulding
> machine.
> It has two rows of five buttons across the top, and a canvas containing
various
> objects over the rest of the screen.
> Extensive use is made of configure to change the text of the buttons, as well
as
> their command bindings,
> to keep "the state of the system" current - its quite a hack at this time, as
I
> am still experimenting with getting the interface intuitive.
> On the canvas, there are multiple instances of a Meter class to show things
like
> temperatures and pressures,
> as well as a schematic representation of the machine, created out of polygons
> and lines.
> The schematic, as well as the Meters, are crudely animated by deleting and
> redrawing the objects repetitively with slightly different parameters in
> response to button presses. This is done by starting different threads to
> implement the various motions, which repetitively call kill and draw methods
in
> the main app, after which they (the threads) commit seppoku by returning.
>
> Everything seems to work fine. - there is a thread that runs to move the meter
> values around continuously, and this has been stable for some time now, and I
> can get the various "machine" parts to move around the screen by pushing the
> buttons.
> The trouble occurs when I put the "machine" into Auto mode, simulating the
> various motions in a loop, - it runs for anything from a few tens to a few
> hundreds of cycles before handing in its dinner pail like this.
>
> Any Ideas on what to do next to find the culprit?
>
> - Hendrik

Ran it with strace - here is last bit of log:

write(3, "<\30\2\0\35\0\300\2<\0\2\0\34\0\300\0027\0\7\0\34\0\300"..., 68) = 68
select(4, [3], [], [], {0, 0})          = 0 (Timeout)
gettimeofday({1159960306, 369206}, {4294967176, 0}) = 0
futex(0x807b908, FUTEX_WAKE, 1)         = 0
futex(0x80bad48, FUTEX_WAKE, 1)         = 0
write(3, "5\30\4\0N\0\300\2 \0\300\2r\2\220\0F\0\5\0N\0\300\2\23"..., 900) = 900
gettimeofday({1159960306, 371171}, {4294967176, 0}) = 0
select(4, [3], [], [], {0, 0})          = 0 (Timeout)
gettimeofday({1159960306, 371386}, {4294967176, 0}) = 0
futex(0x807b908, FUTEX_WAKE, 1)         = 0
select(0, NULL, NULL, NULL, {0, 20000}) = 0 (Timeout)
futex(0x80bad48, FUTEX_WAIT, 0, NULL)   = 0
futex(0x80bad48, FUTEX_WAKE, 1)         = 0
write(3, "<\30\2\0\34\0\300\2<\0\2\0\35\0\300\0027\0\7\0\35\0\300"..., 68) = 68
select(4, [3], [], [], {0, 0})          = 0 (Timeout)
gettimeofday({1159960306, 396232}, {4294967176, 0}) = 0
futex(0x807b908, FUTEX_WAKE, 1)         = 0
futex(0x80bad48, FUTEX_WAKE, 1)         = 0
write(3, "5\30\4\0N\0\300\2 \0\300\2r\2\220\0F\0\5\0N\0\300\2\23"..., 900) = 900
gettimeofday({1159960306, 398381}, {4294967176, 0}) = 0
select(4, [3], [], [], {0, 0})          = 0 (Timeout)
gettimeofday({1159960306, 398597}, {4294967176, 0}) = 0
futex(0x807b908, FUTEX_WAKE, 1)         = 0
select(0, NULL, NULL, NULL, {0, 20000}) = 0 (Timeout)
futex(0x80bad48, FUTEX_WAIT, 0, NULL)   = 0
futex(0x80bad48, FUTEX_WAKE, 1)         = 0
futex(0x807b908, FUTEX_WAIT, 0, NULL)   = 0
write(3, "7\30\5\0\21\0\300\2:\0\300\2\4\0\0\0\377\0\0\0", 20) = 20
select(4, [3], [], [], {0, 0})          = 0 (Timeout)
gettimeofday({1159960306, 420182}, {4294967176, 0}) = 0
futex(0x807b908, FUTEX_WAKE, 1)         = 0
futex(0x80bad48, FUTEX_WAIT, 0, NULL)   = 0
futex(0x80bad48, FUTEX_WAKE, 1)         = 0
write(3, "5\30\4\0N\0\300\0029\0\300\2\207\0\210\0F\0\5\0N\0\300"..., 708) = 708
gettimeofday({1159960306, 421944}, {4294967176, 0}) = 0
select(4, [3], [], [], {0, 0})          = 0 (Timeout)
gettimeofday({1159960306, 422168}, {4294967176, 0}) = 0
futex(0x807b908, FUTEX_WAKE, 1)         = 0
select(0, NULL, NULL, NULL, {0, 20000}) = ? ERESTARTNOHAND (To be restarted)
+++ killed by SIGABRT +++







More information about the Python-list mailing list