This is the mail archive of the docbook-apps@lists.oasis-open.org mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[docbook-apps] fo error: Illegal unit of measure


Hi,

I wonder if anyone can shed light on this problem because for the life of me I 
can't figure it out.  xmllint has no problems with this file.

Having *both* <orderedlist> and <screen> tags in this document produces the 
following error:

(/usr/share/texmf/tex/latex/psnfss/t1pcr.fd) [1]
! Illegal unit of measure (replaced by filll).
<argument> <5:block^^I><5:block^^I>L
                                    et Us Go Deeper</5:block></5:block>\@empty
l.49 ...opriately.</fo:block></fo:block></fo:flow>
                                                  </fo:page-sequence></fo:root>

Removing either one of these "solves" the problem.

Tools / flags / etc are:
Suse 9.1 (did a YOU a couple of days ago)
xsltproc --nonet --xinclude -o 
test.fo /usr/share/xml/docbook/stylesheet/nwalsh/1.64.1/fo/docbook.xsl 
test.xml

pdfxmltex test.fo


File "test.xml":
<?xml version="1.0"?> <!-- -*- sgml -*- -->
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd";>

<book id="howto" lang="en" xreflabel="valgrind HOWTO">

 <bookinfo>
  <title>Valgrind HOWTO</title>
  <subtitle>A guide to Valgrind, the malloc debugger</subtitle>
 </bookinfo>

<chapter id="deeper" xreflabel="Let Us Go Deeper">
<title>Let Us Go Deeper</title>

<para>The dynamic linker calls the initialization function of
Valgrind. Then the synthetic CPU takes control from the real
CPU. In the memory there may be some other .so files. The dynamic
linker calls the initialization function of all such .so
files.</para>

<sect1 id="validity" 
       xreflabel="How Valgrind Tracks Validity of Each Byte">
<title>How Valgrind Tracks Validity of Each Byte</title>

<para>For every byte processed, the synthetic processor maintains
9 bits, 8 'V' bits and 1 'A' bit. The 'V' bits indicate the
validity of the 8 bits in the byte and the 'A' bit indicates
validity of the byte address. These valid-value(V) bits are
checked only in two situations:</para>

<orderedlist>
 <listitem>
  <para>when data is used for address generation,</para>
 </listitem>
 <listitem>
  <para>when control flow decision is to be made.</para>
 </listitem>
</orderedlist>

<para>In any of these two situations, if the data is found to be
undefined an error report will be generated. But no error reports
are generated while copying or adding undefined data.</para>

<screen><![CDATA[
#include <stdlib.h>
/*  produces no errors */
int main() {
  int *p, *a;
  p = malloc( 10*sizeof(int) );
  a = malloc( 10*sizeof(int) );
  a[3] = p[3];
  free( a );
  free( p );
  return 0;
}]]></screen>

<para>All bytes that are in memory but not in CPU have an
associated valid-address(A) bit, which indicates whether the
corresponding memory location is accessible by the program. When
a program starts, the 'A' bits corresponding to each global
variables are set.</para>

</sect1>

</chapter>

</book>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]