mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 11:26:16 +01:00
79d32c2fc1
See https://bugzilla.gnome.org/show_bug.cgi?id=621838 for the whole story. The problem was that we ended up reading data from arrays of arrays when we were just supposed to be aligning the buffers. Also add a host of debug infrastructure that was needed to find the root cause. For now it can be turned on only via defining DEBUG_SERIALIZER. In the future we might want to make it work via G_DBUS_DEBUG. In a nutshell, the added debug info looks like this Parsing blob (blob_len = 0x0084 bytes) 0000: 6c 01 00 01 3c 00 00 00 41 00 00 00 37 00 00 00 l...<...A...7... 0010: 08 01 67 00 08 61 61 79 61 7b 73 76 7d 00 00 00 ..g..aaya{sv}... 0020: 01 01 6f 00 08 00 00 00 2f 66 6f 6f 2f 62 61 72 ..o...../foo/bar 0030: 00 00 00 00 00 00 00 00 03 01 73 00 06 00 00 00 ..........s..... 0040: 4d 65 6d 62 65 72 00 00 00 00 00 00 34 00 00 00 Member......4... 0050: 03 00 00 00 63 77 64 00 01 73 00 00 23 00 00 00 ....cwd..s..#... 0060: 2f 68 6f 6d 65 2f 64 61 76 69 64 7a 2f 48 61 63 /home/davidz/Hac 0070: 6b 69 6e 67 2f 67 6c 69 62 2f 67 69 6f 2f 74 65 king/glib/gio/te 0080: 73 74 73 00 sts. Parsing headers (blob_len = 0x0084 bytes) Reading type a{yv} from offset 0x000c: array spans 0x0037 bytes Reading type {yv} from offset 0x0010 Reading type y from offset 0x0010: 0x08 ' Reading type v from offset 0x0011 Reading type g from offset 0x0014: 'aaya{sv}' Reading type {yv} from offset 0x001e Reading type y from offset 0x0020: 0x01 '' Reading type v from offset 0x0021 Reading type o from offset 0x0024: '/foo/bar' Reading type {yv} from offset 0x0031 Reading type y from offset 0x0038: 0x03 '' Reading type v from offset 0x0039 Reading type s from offset 0x003c: 'Member' Parsing body (blob_len = 0x0084 bytes) Reading type (aaya{sv}) from offset 0x0047 Reading type aay from offset 0x0048: array spans 0x0000 bytes Reading type a{sv} from offset 0x004c: array spans 0x0034 bytes Reading type {sv} from offset 0x0050 Reading type s from offset 0x0050: 'cwd' Reading type v from offset 0x0058 Reading type s from offset 0x005b: '/home/davidz/Hacking/glib/gio/tests' OK Signed-off-by: David Zeuthen <davidz@redhat.com> |
||
---|---|---|
.. | ||
schema-tests | ||
.gitignore | ||
appinfo-test.c | ||
appinfo-test.desktop | ||
appinfo.c | ||
application.c | ||
async-close-output-stream.c | ||
buffered-input-stream.c | ||
contexts.c | ||
converter-stream.c | ||
data-input-stream.c | ||
data-output-stream.c | ||
de.po | ||
desktop-app-info.c | ||
echo-server.c | ||
enums.xml.template | ||
filter-cat.c | ||
filter-streams.c | ||
g-file-info.c | ||
g-file.c | ||
g-icon.c | ||
gdbus-addresses.c | ||
gdbus-connection.c | ||
gdbus-error.c | ||
gdbus-example-export.c | ||
gdbus-example-own-name.c | ||
gdbus-example-peer.c | ||
gdbus-example-proxy-subclass.c | ||
gdbus-example-server.c | ||
gdbus-example-subtree.c | ||
gdbus-example-unix-fd-client.c | ||
gdbus-example-watch-name.c | ||
gdbus-example-watch-proxy.c | ||
gdbus-exit-on-close.c | ||
gdbus-export.c | ||
gdbus-introspection.c | ||
gdbus-names.c | ||
gdbus-peer.c | ||
gdbus-proxy-well-known-name.c | ||
gdbus-proxy.c | ||
gdbus-serialization.c | ||
gdbus-sessionbus.c | ||
gdbus-sessionbus.h | ||
gdbus-tests.c | ||
gdbus-tests.h | ||
gdbus-testserver.py | ||
gdbus-threading.c | ||
gschema-compile.c | ||
gsettings.c | ||
httpd.c | ||
live-g-file.c | ||
live-g-file.txt | ||
Makefile.am | ||
memory-input-stream.c | ||
memory-output-stream.c | ||
org.gtk.test.gschema | ||
org.gtk.test.gschema.xml | ||
readwrite.c | ||
resolver.c | ||
send-data.c | ||
simple-async-result.c | ||
sleepy-stream.c | ||
socket-client.c | ||
socket-common.c | ||
socket-server.c | ||
srvtarget.c | ||
testapp.c | ||
testapps.c | ||
testenum.h | ||
unix-fd.c | ||
unix-streams.c | ||
win32-streams.c |