Converting from PyUnicodeObject to char * without calling C API
skip at pobox.com
skip at pobox.com
Tue Jan 13 13:39:47 EST 2009
MRAB> Should you be using "char *" when they aren't char? Is there a
MRAB> wide char type of some sort?
No, I shouldn't. The storage is wchar_t *, what you get with my first
printed expression:
(gdb) set $__f = (PyUnicodeObject *)(co->co_filename)
(gdb) p *$__f->str@$__f->length
$14 = {47, 85, 115, 101, 114, 115, 47, 115, 107, 105, 112, 47, 115, 114, 99, 47, 112, 121, 116, 104, 111, 110, 47, 112, 121, 51, 107, 45, 116, 47, 76, 105, 98, 47, 95, 119, 101, 97, 107, 114, 101, 102, 115, 101, 116, 46, 112, 121}
That's not too readable. I'm not sure I can do much with that without
having a process to use. Ideally:
print "".join([ chr(x) for x in *$__f->str@$__f->length])
The question is, how do you do that in gdb-speak???
Skip
More information about the Python-list
mailing list