unexpected condition in iidb

unexpected condition in iidb

Hi,

I have a program that compiles and links perfectly (I don't get any warnings even with -warn all option). However, when I then want to run it in the debugger, execution is halted immediatley and I get the following message

Reading symbolic information from /home/isildur/Documents/Research/EPSocSec/code/epss_5g/Debug_IA-32/epss_5g...Assertion failed: "false" src/st/file/pil_parsesymsdwarf2.C:4501
This is an unexpected condition and may indicate the presence of a defect.
If you wish to report this, please include the stack trace that follows.
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN15IDBAssertFailed3runEPKcS1_j+0x11) [0x81f0597]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN14DTLU_namespace12assertFailedEPKcS1_j+0x1b) [0x87d2575]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN21PSD2_LineStateMachine14runUntilAppendEv+0x87c) [0x87c2512]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN30PSD2_LineStateMachine_Consumer3runER21PSD2_LineStateMachineb+0x125) [0x87c10b1]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN15ParseSymsDwarf222emitLinesForCompilUnitERK11WalkCtxDIEsRK11AttrBindingRK12AttrBindings+0xfa1) [0x87c0c9d]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN15ParseSymsDwarf227emitSTForDIECompilationUnitER11WalkCtxDIEsbRK12AttrBindings+0x5bf) [0x87be36d]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN15ParseSymsDwarf212emitSTForDIEER11WalkCtxDIEsbRK12AttrBindings+0x37c) [0x87ba9c2]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN15ParseSymsDwarf214walkTreeOfDIEsER11WalkCtxDIEs+0xeb) [0x87bc2cb]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN15ParseSymsDwarf219walkCompilationUnitER16WalkCtxDebugInfo+0x4ed) [0x87a6503]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN15ParseSymsDwarf220readTopLevelEntitiesEv+0x29c) [0x87a4ad2]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN15ParseSymsDwarf218readPartialSymbolsEb14PreferFileEnum+0x12b) [0x87a7869]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN23LoadableFileSymbolTable18readPartialSymbolsEb+0x89) [0x8769a9d]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN11LoadedFiles8loadAOUTERSoPK6FileId+0x1f3) [0x869367d]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN17WritableSymtabDef8loadAOUTEPK6FileId+0x22) [0x8693442]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN12ControlDefUx14getLoadedFilesEv+0x16fa) [0x8385f0a]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN12AddrSpaceDef10noteLoadedEPK6FileIdP7Program+0xb2) [0x83dee34]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN10ProcessDef10noteExecedEPKc+0xa2) [0x83be430]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN12ControlDefUx10noteExecedEv+0x24) [0x838dd70]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN18ControlDefUxPtrace21startProcess_postExecEPK6FileId+0x156) [0x83925de]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN12ControlDefUx12startProcessEPKcRK7ArgListPK11EnvironmentS1_S1_S1_Ri+0x28f) [0x8386b07]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN14ProcessFactory22createLocalLiveProcessEP3JobP7ArgListPcS4_S4_22IsOrIsNotADummyProcess+0x165) [0x83d1055]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN3Job22createLocalLiveProcessEP7ArgListPcS2_S2_22IsOrIsNotADummyProcess+0x24) [0x83d0ee8]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN11SessionBase17startLocalProcessEP3JobP7ArgList22IsOrIsNotADummyProcess+0x57) [0x836a597]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_Z17StartDummyProcessP3Job+0x32) [0x82adc74]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN7CmdLoad5do_itER19CmdExecutionContextRN10BaseForCmd9CmdResultE+0x1a0) [0x82abc86]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN10BaseForCmd7executeEb+0xe77) [0x8251e7f]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN3Cmd20executeAsInternalCmdEv+0x22) [0x822dcba]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_ZN12InitialState10executeCmdEv+0x45) [0x8342c71]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_Z15decladebug_initiPPKcS1_+0x783) [0x81ef15b]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(_Z7idbMainiPPKcS1_+0x18d) [0x81ebbcf]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(main+0xce) [0x81eb11a]
/lib/libc.so.6(__libc_start_main+0xfe) [0xb75e4c0e]
/local/intel/Compiler/11.1/072/bin/ia32/iidb(dlopen+0x45) [0x81eafc1]
99
 ^

The compiler and linker invocations are

ifort -g -O0 -I/local/vni/imsl/fnl600/lnxin100i32/include -I/local/intel/Compiler/11.1/072/mkl/include -noaltparam -openmp -fltconsistency -c -no-fp-port -o "$@" "$<"
ifort -openmp -fltconsistency -I/local/vni/imsl/fnl600/lnxin100i32/include -o"epss_5g" $(OBJS) $(USER_OBJS) $(LIBS) -L/local/vni/imsl/fnl600/lnxin100i32/lib -Bstatic -limsl -limslsuperlu -limslscalar -limslblas -limslmpistub -limsls_err -Bdynamic

I am working on OpenSuse 11.3.
I would be very grateful for quick help (it is a quite pressing matter). Please let me know if you need further information.

Thanks a lot,

Daniel

22 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

The current debugger (supplied with ifort 11.1.073) is said to have been tested on several SuSE distros. If you have a reason for not upgrading your ifort and taking advantage of several bug fixes, you can still set up the previous environment for build and the 11.1.073 environment for debugging.

Thanks for the quick reply. Upgrading from 11.1.072 to 11.1.073 did indeed solve the problem!

Sorry, I was mistaken. Upgrading does NOT solve the problem!

When I use gdb instead of idbc, the program runs fine! I would much prefer to use idb, so I would still greatly appreciate any hints.

It looks like a debug info issue, but I'm investigating your log further. I'll come back to you once I have more information.
Regards, Hubert.

Could you please provide the .debug_line dump (as file attachment) fromthe executable, e.g.
$ readelf -wl -x ".debug_line"

Hubert,

thanks for getting back to me, and sorry it took me so long, I was out of the office. Attached you find the output of

readelf -wl -x ".debug_line" epss_6d2 -> debug_line_dump.txt

The following warnings were displayed:

readelf: Warning: Bogus end-of-siblings marker detected at offset 723 in .debug_info section
readelf: Warning: Bogus end-of-siblings marker detected at offset 724 in .debug_info section
readelf: Warning: Bogus end-of-siblings marker detected at offset 725 in .debug_info section
readelf: Warning: Further warnings about bogus end-of-sibling markers suppressed
readelf: Error: '-': No such file

I am not sure these warnings are given when I do not have the pipe command (i.e. when the output is printed to the shell), but the file looks the same.

Let me know if there is more I can do.

It looks like the linked ISML libraries contain opcodes the IDB Debugger (in version 11.x) does not yet support.

We have introcuded support for those opcodes in the debugger recently, but I'm not sure if they have been already introduced in the latest 11.1 update (package l_cprof_p_11.1.073). But they are available for sure in the upcoming debugger release (scheduled for Q4'2010).

So I'd recommend you to install the latest update (11.1.073). I seeyou are using 11.1.072 which is a couple of months older than 073.

Have you ever considered using the Intel Visual Fortran Compiler Professional with ISML edition? (http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-windows-using-intel-mkl-with-imsl-fortran-numerical-library/)
Hubert.

I am definitely using the latest update, i.e. 11.1.073. How come you think I was using the older?

I tried the same program on a different machine, and it did work there. The main differences are that the 'bad' machine is running OpenSuse 11.3 and has an AMD (dual core) processor, whereas the 'good' machine is running Kubuntu 10.04 with Intel dual core.

Thanks for the info about the edition. I am not sure it is available for Linux, but even if, at the moment I wouldn't have the funds to buy it... but thanks.

Could you tell me what opcodes are? I find it strange that gdb does not have a problem...

The assertion output shows a 11.1.072 debugger path, so I assumed you were running idb 11.1.072.
What is the output of:
$ idbc -v
Are you sure you have the identical installation on OpenSUSE and Kubuntu (in terms ofISML and idbc versions)?
Hubert.

This is very strange. I did have the old version installed, but I did remove it before installing the new one, and there is only an empty directory left for .072. The output I get is

Intel Debugger for applications running on IA-32, Version 11.1, Build [1.2097.2.385]

Both installations have the same IMSL, and did have the same idbc before I upgraded the OpenSuse system to .073. I only upgraded because I hoped the error we are discussing would not occur anymore. So Kubuntu is still running .072, and on OpenSuse the error also occured under .072. If you think it would help you a lot in diagnosing, I could upgrade the Kubuntu system as well (though I would prefer not to change the one running system I have left...).

Yes, 1.2097.2.385 is the current 11.1.073 debugger.
So it looks like that neither the ISML northe debuggeristhe problem since this runson Kubuntu.
Could you please try to debug the executable on OpenSUSE whichwas build on Kubuntu?
If there is no difference (i.e. debugging on Kubuntu ok, but fails with an assertion on OpenSUSE), could you please rebuild the code with additional compiler options1-axsse2 -msse2 and debug the execetuable on Kubuntu and OpenSUSE.
Hubert.

1This option combinationis available for both Intel and non-Intel microprocessors but it may perform additional optimizations for Intel microprocessors than it performsfor non-Intel microprocessors.

I did what you told me:
1. Build on Kubuntu (where everything works)
2. Debug on OpenSuse (where it usually fails with an assertion)
Result: It does NOT fail.

When I build the same project on OpenSuse, debugging fails again with the same old assertion. Do you think there is a workaround? OpenSuse is the latest edition with all updates, the CPU is an AMD Athlon Dual Core Processor 5400B.

Edit: I was wondering whether I am using the correct compiler version for this system. When I look at 'My Computer' I get the information
OS: Linux 2.6.34.7-0.3-desktop i686
System: openSUSE 11.3 (i586)

I am using the IFC for ia32 architecture. Hope that's correct...

This is the correct sing-on message of the latest 11.1.073 Fortran IA32 Compiler for Linux*:

$ ifort -V

Intel Fortran Compiler Professional for applications running on IA-32, Version 11.1 Build 20100806 Package ID: l_cprof_p_11.1.073

Copyright (C) 1985-2010 Intel Corporation. All rights reserved.

The corresponding debugger is:

$ idbc -v

Intel Debugger for applications running on IA-32, Version 11.1, Build [1.2097.2.385]

To set the compiler/debugger environment correctly, you should source all tools with the common ifortvars.sh script only, e.g.:

$ source /opt/intel/Compiler/11.1/073/bin/ifortvars.sh ia32

Just to make sure, you are setting the env correctly.

Did you try out compiler options -axsse2 -msse2 as described in the last thread?
Which are glibc ($ rpm -q glibc), thebinutils ($ ld -v) and gcc ($ gcc -v) versions of OpenSUSE11.3?

Hubert.

ifort -V and idbc -v give exactly the same output that you showed. I am sourcing the ifortvars.sh the way you showed.

I added the compiler options -axsse2 -msse2 when building on the OpenSUSE (I did not add them when linking), and I am getting the same old failure when I try to debug. I don't have access to the Kubuntu machine at the moment.

The three versions you asked for are

glibc-2.11.2-3.1.1.i686

GNU ld (GNU Binutils; openSUSE 11.3) 2.20.0.20100122-6

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i586-suse-linux/4.5/lto-wrapper
Target: i586-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.5 --enable-ssp --disable-libssp --disable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap --with-slibdir=/lib --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --program-suffix=-4.5 --enable-linux-futex --without-system-libunwind --enable-gold --with-plugin-ld=/usr/bin/gold --with-arch-32=i586 --with-tune=generic --build=i586-suse-linux
Thread model: posix
gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] (SUSE Linux)

Thanks for your input. I suspect that gcc 4.5 is the reason for the "incompatibility". My actual Ubuntu (and this is most likely the same for Kubuntu) is still gcc 4.4.x based. gcc 4.5 was never tested (since not avaialbe as released version) at the time of the 11.x release.

One chance would be to add option -gcc-version=430. Could you please try this out on OpenSUSE?

Hubert

I added -gcc-version=430 to the build and link command (although I don't find the option in the IFC 11.1 user guide). Nothing changed. I don't have gcc 4.3 installed at the moment. Shall I install it? Would that somehow interfere with gcc 4.5? I wouldn't want my system to break, since I am still quite new to Linux. But I do want to get IDB to run.

Thanks for all your efforts!

Hubert, any thoughts on my last post?

Do you think we should ask Steve Lionel or Tim about this, who have helped me on other matters?

I can just about spell idb and that's it. Hubert is the expert here.

Retired 12/31/2016

Place your development files in the same absolute path on both the Kubuntu and OpenSuse systems

This is to assure that source paths are identical on both systems.
You may also need to set your TEMP and INCLUDE, etc to same relative paths.

Build using the same options for Kubuntu and OpenSuse

Run a binary difference on the object files, the execuitable and the debug database files.
Note, if folder paths were different then the contents of these files will differ (when compiled with debug info).

If the object files differ then suspect some option difference or some header file difference between the systems (or compiler difference). The difference may also show you the text of the fully qualified path to a file.

If the Execuitable file differs then suspect the linker or one of the libraries differ.

If the debug database file differs (with object and execuitible the same), suspect the linker.

If all files are identical then suspect the debugger (or settings for the debugger)

Hopefully something will show up

e.g. some global #define is different on each system.

Jim Dempsey

It seems the problem is connected with SuSE 11.3 but how to resolve it.
I encountered the same problem with 11.1.072 and i just installed Intel 12.0 and ... the same problem.
please see output:

rupc-hn01:~/test_single # export LD_LIBRARY_PATH="/opt/intel/composerxe-2011.0.084/debugger/lib/intel64/;$LD_LIBRARY_PATH"

rupc-hn01:~/test_single # iidb ./wilson1

Intel Debugger for applications running on Intel 64, Version 12.0, Build [1.3842.2.129]

------------------

object file name: ./wilson1

Reading symbols from /root/test_single/wilson1...Assertion failed: "false" ./src/st/file/pil_parsesymsdwarf2.C:4865

This is an unexpected condition and may indicate the presence of a defect.

If you wish to report this, please include the stack trace that follows.

iidb(_ZN15IDBAssertFailed3runEPKcS1_j+0xe) [0x5f591a]

iidb(_ZN14DTLU_namespace12assertFailedEPKcS1_j+0x1e) [0xae9c9e]

iidb(_ZN21PSD2_LineStateMachine14runUntilAppendEv+0x5e5) [0xad0575]

iidb(_ZN30PSD2_LineStateMachine_Consumer3runER21PSD2_LineStateMachineb+0x312) [0xacf382]

iidb(_ZN15ParseSymsDwarf222emitLinesForCompilUnitERK11WalkCtxDIEsRK11AttrBindingRK12AttrBindings+0xa8c) [0xacee6c]

iidb(_ZN15ParseSymsDwarf227emitSTForDIECompilationUnitER11WalkCtxDIEsbRK12AttrBindings+0x6a7) [0xace0c7]

iidb(_ZN15ParseSymsDwarf212emitSTForDIEER11WalkCtxDIEsbRK12AttrBindings+0x38f) [0xac803f]

iidb(_ZN15ParseSymsDwarf214walkTreeOfDIEsER11WalkCtxDIEs+0xd0) [0xacc7c0]

iidb(_ZN15ParseSymsDwarf219walkCompilationUnitER16WalkCtxDebugInfo+0x368) [0xabe968]

iidb(_ZN15ParseSymsDwarf220readTopLevelEntitiesEv+0x381) [0xabd451]

iidb(_ZN15ParseSymsDwarf218readPartialSymbolsEb14PreferFileEnum+0x15d) [0xabcc1d]

iidb(_ZN23LoadableFileSymbolTable18readPartialSymbolsEb+0xd6) [0xa81066]

iidb(_ZN10LoadedFile11readSymbolsERSob+0x166) [0x932b68]

iidb(_ZN11LoadedFiles8loadAOUTERSoPK6FileId+0x81) [0x930571]

iidb(_ZN17WritableSymtabDef8loadAOUTEPK6FileId+0x1f) [0x92a2c7]

iidb(_ZN12ControlDefUx14getLoadedFilesEPK6FileId+0xb00) [0x66fef4]

iidb(_ZN12AddrSpaceDef10noteLoadedEPK6FileIdS2_P7Program+0xe1) [0x6b6a99]

iidb(_ZN10ProcessDef10noteExecedEPKc+0xe9) [0x6c3f61]

iidb(_ZN12ControlDefUx10noteExecedEv+0x26) [0x670cdc]

iidb(_ZN18ControlDefUxPtrace21startProcess_postExecEPK6FileId+0x16f) [0x6640d7]

iidb(_ZN12ControlDefUx12startProcessEPKcRK7ArgListPK11EnvironmentS1_S1_S1_Ri+0x3a3) [0x66ecd9]

iidb(_ZN14ProcessFactory22createLocalLiveProcessEP3JobP7ArgListPcS4_S4_22IsOrIsNotADummyProcess+0x1b6) [0xa2bdda]

iidb(_ZN3Job22createLocalLiveProcessEP7ArgListPcS2_S2_22IsOrIsNotADummyProcess+0x3e) [0x6acff6]

iidb(_ZN11SessionBase17startLocalProcessEP3JobP7ArgList22IsOrIsNotADummyProcess+0x8c) [0x64de5e]

iidb(_Z17StartDummyProcessP3Job+0xaf) [0x5fcb31]

iidb(_ZN7CmdLoad5do_itER19CmdExecutionContextRN10BaseForCmd9CmdResultE+0x274) [0x5fe290]

iidb(_ZN10BaseForCmd7executeEb+0xf92) [0x5f9232]

iidb(_ZN3Cmd20executeAsInternalCmdEv+0x23) [0x5fa7af]

iidb(_ZN12InitialState10executeCmdEv+0x67) [0x62478f]

iidb(_Z15decladebug_initiPPKcS1_+0xd9b) [0x5f53a3]

iidb(_Z7idbMainiPPKcS1_+0x17b) [0x5f2661]

iidb(main+0x3a) [0x5f237a]

/lib64/libc.so.6(__libc_start_main+0xfd) [0x7f2c52890b7d]

iidb(__gxx_personality_v0+0x202) [0x5f21ea]

Could not start process for ./wilson1

No image loaded ... Recovering ...

(idb)

which info could be helpful beside this one?

rupc-hn01:~/test_single # more /etc/issue

Welcome to openSUSE 11.3 "Teal" - Kernel \r (\l).

rupc-hn01:~/test_single # uname -a

Linux rupc-hn01 2.6.34.7-0.5-desktop #1 SMP PREEMPT 2010-10-25 08:40:12 +0200 x86_64 x86_64 x86_64 GNU/Linux

rupc-hn01:~/test_single # rpm -qa |grep glibc

glibc-devel-32bit-2.11.2-3.3.1.x86_64

glibc-profile-2.11.2-3.3.1.x86_64

glibc-2.11.2-3.3.1.x86_64

glibc-info-2.11.2-3.3.1.x86_64

glibc-devel-2.11.2-3.3.1.x86_64

glibc-locale-2.11.2-3.3.1.x86_64

glibc-locale-32bit-2.11.2-3.3.1.x86_64

glibc-i18ndata-2.11.2-3.3.1.x86_64

glibc-obsolete-2.11.2-3.3.1.x86_64

linux-glibc-devel-2.6.32-3.3.noarch

glibc-32bit-2.11.2-3.3.1.x86_64

glibc-profile-32bit-2.11.2-3.3.1.x86_64

rupc-hn01:~/test_single # ifort -v

Version 12.0.0

rupc-hn01:~/test_single # ld -v

GNU ld (GNU Binutils; openSUSE 11.3) 2.20.0.20100122-6

rupc-hn01:~/test_single #

Compiler options are simple: ifort -g -o wilson1 *.f

HiI am no expert at all, but I did try really many things to get it working, without success. See my summary of this long thread in comment #49. If I was you, I would use another distribution that comes with gcc < 4.5BestDaniel

Leave a Comment

Please sign in to add a comment. Not a member? Join today