Hello,

I am trying to debug assertion failure while building OOo 2.3.1
OOG680_m9 on FreeBSD 7.0 amd64 platform.

I have managed this to limit to a simple case with only one C header
from the "sal" project, autodoc is apparently unable to start parsing
any file at all:

Starting program:
/usr/obj/usr/ports/editors/openoffice.org-2/work/OOG680_m9/solver/680/unxfbsdx.pro/bin/autodoc
-html ~/openoffice/autodoc/ref -name "UDK 3.2.7 C/C++ API Reference" -lg
c++         -p sal ~/openoffice/autodoc/inc -t sal
[New LWP 100309]
[New Thread 0x806120 (LWP 100309)]

Autodoc version 2.2.5
---------------------

Parsing the repository UDK 3.2.7 C/C++ API Reference ...
..1 files found to parse in project sal.
assertion failed: i > 0 ? i_pTokTypeArray[i] > i_pTokTypeArray[i-1] :
true in file: ../inc/semantic/callf.hxx at line: 186

Program exited with code 03.

This is most probably some FreeBSD porting issue, as users have reported
 that using FreeBSD binary build Java 1.5.0 instead of source build (1.5
or 1.6) helps to workaround this.
(http://thread.gmane.org/gmane.os.freebsd.devel.ports/71688/focus=71754)

I wanted to have a look into this, but apparently I cannot tell gdb to
see C++ line numbers correctly:

(gdb) break 'autodoc::command::run::Parser::Perform()'
Note: breakpoint 1 also set at pc 0x4bbb04.
Breakpoint 2 at 0x4bbb04
(gdb) run
Starting program:
/usr/obj/usr/ports/editors/openoffice.org-2/work/OOG680_m9/solver/680/unxfbsdx.pro/bin/autodoc
-html ~/openoffice/autodoc/ref -name "UDK 3.2.7 C/C++ API Reference" -lg
c++         -p sal ~/openoffice/autodoc/inc -t sal
[New LWP 100275]
[New Thread 0x806120 (LWP 100275)]

Autodoc version 2.2.5
---------------------

[Switching to Thread 0x806120 (LWP 100275)]

Breakpoint 1, 0x00000000004bbb04 in
autodoc::command::run::Parser::Perform ()
(gdb) bt
#0  0x00000000004bbb04 in autodoc::command::run::Parser::Perform ()
#1  0x00000000004b60f3 in autodoc::command::Parse::do_Run ()
#2  0x00000000004b2b30 in autodoc::command::Command::Run ()
#3  0x00000000004b2167 in autodoc::CommandLine::Run ()
#4  0x00000000004b0241 in main ()
(gdb) list
1       in <<C++-namespaces>>
(gdb)

I am unable to see source code or local variables as well. Tried using
GNU gdb 6.1.1 bundled with the system as well as extra compiled 6.6

I have added "-ggdb" to CFLAGSDEBUG in the solenv/inc/unxfbsd.mk file
and rebuilt the autodoc, with no effect. I've had a look at the
"autodoc" binary with the readelf utility and it seems to have all the
necessary info inside (source files and line numbers).

An abridged compilation and debugging session log is here:

http://akson.sgh.waw.pl/~saper/FreeBSD/openoffice/autodoc/session_brief.log

Any ideas how to make gdb see C++ symbols properly?

Unfortunately I have only C experience with gdb.
Also hints about the assertion itself are welcome.

Thanks in advance!

--Marcin


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to