need help with bizarre error caught in debugger. execution is hanging

Ziaran nir1408 at hotmail.com
Mon Feb 23 00:02:31 CET 2004


Why do you do

if len(self.data) <= 0:
    return len(self.data[0])

Isn't that a sure IndexError exception?
Maybe you catch it somewhere up the stack and so you keep it silent.

Nir

"omission9" <omission9 at invalid.email.info> wrote in message
news:vfBZb.57526$1S1.32587 at nwrddc01.gnilink.net...
> Any advice on the following would be much appreciated. I have thrown
> everything I have at it and am completely stumped. I apologize for the
> length, I have tried to be as succint as possible.
>
> I have a pythoncard/wxPython application. The application works well
> except that users were reporting occasional crashes. The application
> would simply stop and just hang. I was able to reproduce the bug
> faithfully and ran the application in the python debugger pdb.py.
> The trace is below and I simply cannot understand why it is hanging
> where it is. The application gets stuck executing
>
> return len(self.data[0])
>
> This works many many times during the applications execution, indeed
> several successful runs of this line are visible immediatley above the
> hang. I have also printed out the value of self.data. This is a list
> containing 12 inner lists each of length 3 at the point of the hang and
> is never larger than that.
> What on earth could cause this to stop the interpreter cold in its
> tracks without an exception being thrown? CPU usage on the machine is
> high throughout the application's execution and stays as such after the
> "hang" begins. I eventually kill the app although I have let it run for
> a long time and it never leaves this line.
> For what its worth, I am using python 2.3 on windows2k.
>
> Anyone have idea what could be happening?
>
>   c:\python23\lib\site-packages\wxpython\grid.py(664)_setOORInfo()->None
>   -> return val
>   (Pdb) s
>   --Return--
>    c:\python23\lib\site-packages\wxpython\grid.py(850)__init__()->None
>   -> self._setOORInfo(self)
>   (Pdb) s
>
>
>
c:\cygwin\home\ar881\development\bt_analysis\console\ndbbtable.py(17)__init
>
>   __()
>   -> self.data = data
>   (Pdb) s
>
>
>
c:\cygwin\home\ar881\development\bt_analysis\console\ndbbtable.py(18)__init
>
>   __()
>   -> self.colLabels = headings
>   (Pdb) s
>   --Return--
>
c:\cygwin\home\ar881\development\bt_analysis\console\ndbbtable.py(18)__init
>
>   __()->None
>   -> self.colLabels = headings
>   (Pdb) s
>
>
>
c:\cygwin\home\ar881\development\bt_analysis\console\ndbbtablegrid.py(15)__
>
>   init__()
>   -> self.colsizes = colsizes
>   (Pdb) s
>
>
>
c:\cygwin\home\ar881\development\bt_analysis\console\ndbbtablegrid.py(16)__
>
>   init__()
>   -> self.SetTable(table, True)
>   (Pdb) s
>   --Call--
>   c:\python23\lib\site-packages\wxpython\grid.py(993)SetTable()
>   -> def SetTable(self, *_args, **_kwargs):
>   (Pdb) s
>   > c:\python23\lib\site-packages\wxpython\grid.py(994)SetTable()
>   -> val = gridc.wxGrid_SetTable(self, *_args, **_kwargs)
>   (Pdb) s
>   --Call--
>
c:\cygwin\home\ar881\development\bt_analysis\console\ndbbtable.py(27)GetNumb
erRows()
>   -> def GetNumberRows(self):
>   (Pdb) s
>
c:\cygwin\home\ar881\development\bt_analysis\console\ndbbtable.py(28)GetNumb
erRows()
>   -> return len(self.data)
>   (Pdb) s
>   --Return--
>
c:\cygwin\home\ar881\development\bt_analysis\console\ndbbtable.py(28)GetNumb
erRows()->12
>   -> return len(self.data)
>   (Pdb) s
>   --Call--
>
c:\cygwin\home\ar881\development\bt_analysis\console\ndbbtable.py(30)GetNumb
erCols()
>   -> def GetNumberCols(self):
>   (Pdb) s
>
c:\cygwin\home\ar881\development\bt_analysis\console\ndbbtable.py(31)GetNumb
erCols()
>   -> if len(self.data) <= 0:
>   (Pdb) s
>
c:\cygwin\home\ar881\development\bt_analysis\console\ndbbtable.py(34)GetNumb
erCols()
>   -> return len(self.data[0])
>   (Pdb) s
> --Return--
>
>
>
c:\cygwin\home\ar881\development\bt_analysis\console\ndbbtable.py(34)GetNumb
erCols()->3
>   -> return len(self.data[0])
>   (Pdb) s
>





More information about the Python-list mailing list