Re: [Python-Dev] Pep 393 and debugging

2012-04-07 Thread Martin v. Löwis
 I wonder if there is a way to make this situation easier?  Perhaps for
 debug builds, we can store some debug information in the frame object,
 e.g. utf8 encoding of the filename and function?

I'd like to stress Benjamin's recommendation. Dave Malcolm's gdb
extensions (requires gdb with Python support) are really powerful; they
will automatically render PyObject* by displaying the actual logical
value (and not just for strings).

Failing that, I use _PyObject_Dump to display strings; this requires a
debugger that can call functions in the debuggee (like gdb).

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Pep 393 and debugging

2012-04-07 Thread Kristján Valur Jónsson
Thanks, _PyObject_Dump sounds like just the ticket.  Most of the time, the 
VS2010 debugger can just run functions willie nillie and thing should simply 
work.


Frá: Martin v. Löwis [mar...@v.loewis.de]
Sent: 7. apríl 2012 09:08
To: Kristján Valur Jónsson
Cc: python-dev@python.org
Efni: Re: [Python-Dev] Pep 393 and debugging

 I wonder if there is a way to make this situation easier?  Perhaps for
 debug builds, we can store some debug information in the frame object,
 e.g. utf8 encoding of the filename and function?

I'd like to stress Benjamin's recommendation. Dave Malcolm's gdb
extensions (requires gdb with Python support) are really powerful; they
will automatically render PyObject* by displaying the actual logical
value (and not just for strings).

Failing that, I use _PyObject_Dump to display strings; this requires a
debugger that can call functions in the debuggee (like gdb).

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Pep 393 and debugging

2012-04-06 Thread Kristján Valur Jónsson
I just had my first fun with Pep 393 strings and debuggers.  Trying to debug a 
deadlocked python program, I'm trying to figure out the callstack of the thread 
in the debugger.

I ended up with something like:



(char*)((PyASCIIObject*)(tstate-frame-f_code-co_filename))[1]



while previously, it was sufficient to do

(PyUnicodeObject*)(tstate-frame-f_code-co_filename)



Obviously this won't work for non-ASCII objects.

I wonder if there is a way to make this situation easier?  Perhaps for debug 
builds, we can store some debug information in the frame object, e.g. utf8 
encoding of the filename and function?



K




___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Pep 393 and debugging

2012-04-06 Thread Benjamin Peterson
2012/4/6 Kristján Valur Jónsson krist...@ccpgames.com:
 I wonder if there is a way to make this situation easier?  Perhaps for
 debug builds, we can store some debug information in the frame object,
 e.g. utf8 encoding of the filename and function?

Have you tried using the cpython gdb plugin? It should repr these
things for you.



-- 
Regards,
Benjamin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com