On Thu, Aug 28, 2008 at 1:40 AM, Alexis Boutillier <[EMAIL PROTECTED]> wrote: > Timothy Grant a écrit : >> >> On Wed, Aug 27, 2008 at 2:49 AM, Alexis Boutillier >> <[EMAIL PROTECTED]> wrote: >>> >>> Hi, >>> >>> I have a strange behaviour of python with pdb and import statement. >>> Here is the example code : >>> >>> file my1.py: >>> import my2 >>> >>> file my2.py: >>> a=5 >>> toto >>> >>> I intentionnaly put a syntax error in file my2.py. >>> >>> If I run "python -i my2.py" and run pdb I got : >>> NameError: name 'toto' is not defined >>>>>> >>>>>> import pdb >>>>>> pdb.pm() >>> >>> -> toto >>>>>> >>>>>> print a >>> >>> 5 >>> >>> If I run "python -i my1.py" and run pdb I got : >>> NameError: name 'toto' is not defined >>>>>> >>>>>> import pdb >>>>>> pdb.pm() >>> >>> -> toto >>>>>> >>>>>> print a >>> >>> None >>> >>> Why can't I get access to variable a in pdb when the process generating >>> the >>> error came from an import statement ? >>> >>> With python 2.3.5, it works fine and in the two cases I get the correct >>> value of 5 for variable "a". >>> with python 2.43,2.5.1,2.5.2, it doesn't work and I get "None" value for >>> variable a. >>> >>> Somebody can explain me this behaviour ? >>> >>> >>> Thanks. >>> -- >>> Boutillier Alexis >>> Methodology engineer >>> >>> Arteris SA >>> The Network-on-Chip Company TM >>> www.arteris.net >>> >>> 6 par Ariane Immeuble Mercure >>> 78284 Guyancourt Cedex >>> France >>> Office: (+33) 1 61 37 38 71 >>> Fax: (+33) 1 61 37 38 41 >>> [EMAIL PROTECTED] >>> -- >>> http://mail.python.org/mailman/listinfo/python-list >>> >> >> >> Because of the syntax error the module wasn't loaded. >> >> What kind of behaviour would you expect on code that has been flagged >> as not executable? >> > I got the same behaviour with : > file my2.py: > a=5 > raise SystemError,"" > > In pdb, I can't have the value of attribute a. > So this is not linked to the fact that it is a SyntaxError or a SystemError. > > I expect to be able to have the value of all attributes that have been used > before the error occured. > This is problematic because in a more complicated code, you can't have the > value of the attribute that was used before the error occured. > Python know that this attribute exist, it only don't have its value. other > attribute affected are : __name__,__doc__,__file__. > > -- > Boutillier Alexis > Methodology engineer > > Arteris SA > The Network-on-Chip Company TM > www.arteris.net > > 6 par Ariane Immeuble Mercure > 78284 Guyancourt Cedex > France > Office: (+33) 1 61 37 38 71 > Fax: (+33) 1 61 37 38 41 > [EMAIL PROTECTED] > -- > http://mail.python.org/mailman/listinfo/python-list >
So if you were writing C code and the file failed to compile you would still expect to have a working executable that just worked up until the point of the syntax error? I'm not sure why you just don't fix the syntax error and move on. -- Stand Fast, tjg. [Timothy Grant] -- http://mail.python.org/mailman/listinfo/python-list