4
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
5
<title>Debugging</title>
6
<meta name="generator" content="DocBook XSL Stylesheets V1.74.2">
6
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7
7
<link rel="home" href="index.html" title="Libbonobo Reference Manual">
8
8
<link rel="up" href="misc.html" title="Miscellaneous">
9
9
<link rel="prev" href="misc.html" title="Miscellaneous">
27
27
<th width="100%" align="center">Libbonobo Reference Manual</th>
28
28
<td><a accesskey="n" href="libbonobo-faq.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
30
<div class="refentry" lang="en">
30
<div class="refentry" title="Debugging">
31
31
<a name="debugging"></a><div class="titlepage"></div>
32
<div class="refsect1" lang="en">
33
<a name="id3082675"></a><h2>Debugging</h2>
32
<div class="refsect1" title="Debugging">
33
<a name="id3054382"></a><h2>Debugging</h2>
34
34
<p>Bonobo component debugging advice, version 0.1
35
35
by Michael Meeks <mmeeks@gnu.org></p>
36
36
<p>Since it is not transparently obvious how to debug
37
37
Bonobo components the following suggestions may be of use.</p>
38
<div class="refsect2" lang="en">
39
<a name="id3082692"></a><h3>Read the FAQ</h3>
38
<div class="refsect2" title="Read the FAQ">
39
<a name="id3054398"></a><h3>Read the FAQ</h3>
40
40
<p>This will cover particularly common errors and their
41
41
solutions obviating the need for further debugging.</p>
44
<div class="refsect2" lang="en">
45
<a name="id3083777"></a><h3>Versions</h3>
44
<div class="refsect2" title="Versions">
45
<a name="id3055480"></a><h3>Versions</h3>
46
46
<p> It is vital to ensure that the correct versions of
47
47
both the component and the container are being
48
48
run. The safest way to make sure this is the case is
50
50
<span class="command"><strong> ./bonobo-my-component & ./my-test-container </strong></span>
53
<div class="refsect2" lang="en">
54
<a name="id3083795"></a><h3>Correct install</h3>
53
<div class="refsect2" title="Correct install">
54
<a name="id3055498"></a><h3>Correct install</h3>
55
55
<p>It is rather important to make sure that bonobo has
56
56
compiled and installed correctly. If you are using CVS
57
57
ensure that your bonobo has installed without errors
58
58
and that you have run ldconfig.</p>
61
<div class="refsect2" lang="en">
62
<a name="id3083807"></a><h3>Stale processes</h3>
61
<div class="refsect2" title="Stale processes">
62
<a name="id3055511"></a><h3>Stale processes</h3>
63
63
<p>It is a good idea to check there are no stale
64
64
component processes running in the background, check
67
67
<span class="command"><strong>bonobo-slay</strong></span>
70
<div class="refsect2" lang="en">
71
<a name="id3083833"></a><h3>Debugging</h3>
70
<div class="refsect2" title="Debugging">
71
<a name="id3055537"></a><h3>Debugging</h3>
72
72
<p>So: debugging. The best way to do this is to have
73
73
two X-terms, in one run the component:</p>
74
74
<span class="command"><strong><pre class="screen">
94
94
eg. '<code class="literal">libtool gdb $@</code>'</p>
97
<div class="refsect2" lang="en">
98
<a name="id3083910"></a><h3>CORBA method tracing</h3>
97
<div class="refsect2" title="CORBA method tracing">
98
<a name="id3055614"></a><h3>CORBA method tracing</h3>
99
99
<p>There is beautiful built in ORBit2 method tracing
100
100
facility that will show you all CORBA invocations,
101
101
their objects, arguments, microsecond timestamps
106
106
flag. See the ORBit2 FAQ for more info.</p>
109
<div class="refsect2" lang="en">
110
<a name="id3083930"></a><h3>Order of execution</h3>
109
<div class="refsect2" title="Order of execution">
110
<a name="id3055633"></a><h3>Order of execution</h3>
111
111
<p>It is of course important to ensure that the
112
112
component has registered before executing the
113
113
container. A good guide is to wait until your hard
118
<div class="refsect2" lang="en">
119
<a name="id3083942"></a><h3>Nothing will activate!</h3>
118
<div class="refsect2" title="Nothing will activate!">
119
<a name="id3055646"></a><h3>Nothing will activate!</h3>
120
120
<span class="command"><strong><pre class="screen">
121
121
export BONOBO_ACTIVATION_DEBUG_OUTPUT=1
125
125
this will show you. </p>
128
<div class="refsect2" lang="en">
129
<a name="id3083964"></a><h3>Nothing seems to happen, the code just locks</h3>
128
<div class="refsect2" title="Nothing seems to happen, the code just locks">
129
<a name="id3055667"></a><h3>Nothing seems to happen, the code just locks</h3>
130
130
<p>Check that you are doing either a
131
131
<code class="function">bonobo_main()</code> or a
132
132
<code class="function">bonobo_activate()</code> followed by
137
137
and component.</p>
140
<div class="refsect2" lang="en">
141
<a name="id3083995"></a><h3>Getting more information</h3>
140
<div class="refsect2" title="Getting more information">
141
<a name="id3055699"></a><h3>Getting more information</h3>
142
142
<p>If you are doing serious development consider
143
143
compiling gtk+, glib and bonobo with debugging
153
<div class="refsect2" lang="en">
154
<a name="id3084034"></a><h3>Debugging bonobo-activation</h3>
153
<div class="refsect2" title="Debugging bonobo-activation">
154
<a name="id3055738"></a><h3>Debugging bonobo-activation</h3>
155
155
<p> This is often best done by running: </p>
156
156
<span class="command"><strong><pre class="screen">
157
157
gdb ./bonobo-activation
161
161
/tmp/orbit-$USER/reg:...-local.</p>
164
<div class="refsect2" lang="en">
165
<a name="id3084059"></a><h3>The last resort</h3>
164
<div class="refsect2" title="The last resort">
165
<a name="id3055763"></a><h3>The last resort</h3>
166
166
<p>And finally when the handfuls of hair are coming out
167
167
thick and fast, consider reading the source, it only
168
168
looks scary, it won't bite.</p>
171
<div class="refsect2" lang="en">
172
<a name="id3084070"></a><h3>Talk to the experts.</h3>
171
<div class="refsect2" title="Talk to the experts.">
172
<a name="id3055774"></a><h3>Talk to the experts.</h3>
173
173
<p> Try reading the mailing list <a class="ulink" href="http://www.gnome.org/mailing-lists/archives/gnome-components-list/" target="_top">
174
174
archive </a>. </p>