![]() |
![]() |
![]() |
xmlroff Reference Manual | ![]() |
---|
Each node shows its type [FoTree], its address [0x82a0698], and its reference count [1].
Values of the node's properties (GObject properties, which mostly correspond to XSL properties) are shown indented underneath the node information.
Properties of the node's parent type (and that type's parent type, etc.) are shown indented relative to the properties of the node's type.
[xmlroff]$ ./xmlroff -d2 xmlroff.fo (process:16930): libfo-DEBUG: FoTree (0x82a0698 : 1) (process:16930): libfo-DEBUG: default-master: 0x82c7530 (process:16930): libfo-DEBUG: master-name hash: (process:16930): libfo-DEBUG: first : 0x82c7530 (process:16930): libfo-DEBUG: page-sequence-master-name hash: (process:16930): libfo-DEBUG: generate-reference-area: FALSE (process:16930): libfo-DEBUG: allow-mixed-content: FALSE (process:16930): libfo-DEBUG: element: (nil) (process:16930): libfo-DEBUG: context: 0x82a6d48 (process:16930): libfo-DEBUG: areas: (process:16930): libfo-DEBUG: 0x82c6a40 (process:16930): libfo-DEBUG: root (0x82c6c00 : 1) (process:16930): libfo-DEBUG: media-usage (0x82bd838 : 72) (process:16930): libfo-DEBUG: FoEnum (0x82be270 : 2) : auto (process:16930): libfo-DEBUG: generate-reference-area: FALSE (process:16930): libfo-DEBUG: allow-mixed-content: FALSE (process:16930): libfo-DEBUG: element: 0x82a8e68 (process:16930): libfo-DEBUG: context: 0x82dfd48 (process:16930): libfo-DEBUG: areas: (process:16930): libfo-DEBUG: (none) ...
[xmlroff]$ ./xmlroff -d4 xmlroff.fo (process:16932): libfo-DEBUG: FoAreaTree (0x82c6a40 : 1) (process:16932): libfo-DEBUG: context: 0x82c6a90 (process:16932): libfo-DEBUG: is-first: true (process:16932): libfo-DEBUG: prev-part: (null) (process:16932): libfo-DEBUG: is-last: true (process:16932): libfo-DEBUG: next-part: (null) (process:16932): libfo-DEBUG: next-x: 0 pt (process:16932): libfo-DEBUG: next-y: 0 pt (process:16932): libfo-DEBUG: available-width: 0 pt (process:16932): libfo-DEBUG: available-height: 0 pt (process:16932): libfo-DEBUG: child-available-ipdim: 0 pt (process:16932): libfo-DEBUG: child-available-bpdim: 0 pt (process:16932): libfo-DEBUG: generated-by: (null) (process:16932): libfo-DEBUG: reference: (null) (process:16932): libfo-DEBUG: page: (null) (process:16932): libfo-DEBUG: FoAreaPage (0x82e4300 : 2) (process:16932): libfo-DEBUG: page-number: 1 (process:16932): libfo-DEBUG: page-width: 576 pt (process:16932): libfo-DEBUG: page-height: 792 pt (process:16932): libfo-DEBUG: margin-top: 72 pt (process:16932): libfo-DEBUG: margin-bottom: 72 pt (process:16932): libfo-DEBUG: margin-left: 72 pt (process:16932): libfo-DEBUG: margin-right: 72 pt (process:16932): libfo-DEBUG: bpd: 3 (process:16932): libfo-DEBUG: ipd: 1 (process:16932): libfo-DEBUG: sd: 4 (process:16932): libfo-DEBUG: x: 0 pt (process:16932): libfo-DEBUG: y: 0 pt (process:16932): libfo-DEBUG: width: 0 pt (process:16932): libfo-DEBUG: height: 0 pt ...
[xmlroff]$ ./xmlroff -d8 xmlroff.fo (process:16933): libfo-DEBUG: get_text_attr_list:: block text: 'xmlroff ? Sun xmlroff XSL Formatter' (process:16933): libfo-DEBUG: get_text_attr_list:: attr_glist: 0x82aa650 (process:16933): libfo-DEBUG: get_text_attr_list:: attr_glist length: 26 (process:16933): libfo-DEBUG: dump_attr_list:: String: (process:16933): libfo-DEBUG: dump_attr_list:: start: 0; end: 7 (process:16933): libfo-DEBUG: dump_attr_list:: start: 7; end: 37 (process:16933): libfo-DEBUG: dump_attr_list:: start: 37; end: 2147483647 (process:16933): libfo-DEBUG: dump_attr_list:: Font family: (process:16933): libfo-DEBUG: dump_attr_list:: start: 0; end: 7; family: mono (process:16933): libfo-DEBUG: dump_attr_list:: start: 7; end: 37; family: sans-serif (process:16933): libfo-DEBUG: dump_attr_list:: Font size: (process:16933): libfo-DEBUG: dump_attr_list:: start: 0; end: 7; size: 10 (process:16933): libfo-DEBUG: dump_attr_list:: start: 7; end: 37; size: 10 ...
xmlroff often gives "CRITICAL" error messages when something goes wrong. For example:
(xmlroff:4384): libfo-CRITICAL **:
fo_area_area_split_before_height_check: assertion `max_height > 0'
failed
If you want to abort on the critical error so you can use a debugger on the core file, according to http://library.gnome.org/devel/glib/stable/glib-running.html, if you set G_DEBUG=fatal-critical, xmlroff should abort.
GDB, at least, has more to work with when you build a statically linked xmlroff executable.
Add --enable-static --disable-shared to the configure.in (or autogen.sh if building from CVS) command line.
If you are getting an error message and you can't work out what's causing it, break on g_log so you break just before the message is emitted.
After the break, you can go up several stack frames to where g_error (or similar) is called.
By going up enough stack frames, you can usually work out what property or what FO experienced the error.
Note that you should disable the breakpoint on g_log if you are going to interactively call any functions that use g_log.
fo_object_sprintf(object) |
The 'nice' printout of the object. |
fo_object_debug_sprintf(object) |
The 'nice' printout of the object plus its adress and reference count. |
fo_object_debug_dump(object,indent) |
Dump everything about the object and its descendants (if it's part of a tree, that is). |
fo_node_path_to_root_sprintf(node) |
Print XPath-like locator for node. |
fo_node_debug_dump_tree(node) |
Dumps just the FoNode objects, not their properties, in the tree rooted at node. |