- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Having worked with ifort based oneAPI for several years, for debugging the code I have used the flags
safe: FC_ALL += -check all -traceback -fstack-protector -assume protect_parens -implicitnone -warn all,noexternal -fpe-all=0
safe: CC_ALL += -traceback -fstack-protector
which gave a clear traceback of the error module-by-module, up to the line where the fault occurred.
However, with the new ifx-based oneAPI, the same compilation flags produce an incomprehensible output.
How can I recover the simpler and clearer debugging output I use to get from ifort?
Thanks.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ifx uses LLVM memory sanitizer features to check for uninitialized variables. That output can be confusing. Ron posted this message about it.
ifx 2024.1.0 will be available in the next week or so.
Also, with ifx -check uninit examines scalars, arrays, array slices, array elements, allocatable, automatics, and derived types. By contrast, ifort could only catch local scalar variables of intrinsic type INTEGER, REAL, COMPLEX, and LOGICAL without the SAVE attribute.
One other point... this feature is only enabled on Linux.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello there,
I have the following problem whenever I try to use ifx-based oneAPI toolkit to debug my code with the safe flags below
-g -check all,nouninit -traceback -fstack-protector -assume protect_parens -implicitnone -warn all,noexternal -fpe-all=0
The output produced by some fatal error (also featured in the attached image) is incomprehensible to me; it looks like
ifx: warning #10182: disabling optimization; runtime debug checks enabled
ld: EnvField.o: in function `PC_implicit_mapper':
ifxKE5Z2y.i:(.text+0x184f7): undefined reference to `__tgt_mapper_num_components'
ld: ifxKE5Z2y.i:(.text+0x1852f): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x18565): undefined reference to `__tgt_mapper_num_components'
ld: ifxKE5Z2y.i:(.text+0x1859a): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x186e3): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x1874f): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x188b1): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x1891d): undefined reference to `__tgt_push_mapper_component'
ld: EnvField.o:ifxKE5Z2y.i:(.text+0x18a95): more undefined references to `__tgt_push_mapper_component' follow
ld: EnvField.o: in function `ATOM_implicit_mapper':
ifxKE5Z2y.i:(.text+0x18c5c): undefined reference to `__tgt_mapper_num_components'
ld: ifxKE5Z2y.i:(.text+0x18ca0): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x18cd6): undefined reference to `__tgt_mapper_num_components'
ld: ifxKE5Z2y.i:(.text+0x18d0e): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x18e1b): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x18f2c): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x1903d): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x1914e): undefined reference to `__tgt_push_mapper_component'
ld: EnvField.o:ifxKE5Z2y.i:(.text+0x1925f): more undefined references to `__tgt_push_mapper_component' follow
ld: EnvField.o: in function `QNCA_a0$TYPE_M$.btMOLECULAR*$rank1$_implicit_mapper':
ifxKE5Z2y.i:(.text+0x1a854): undefined reference to `__tgt_mapper_num_components'
ld: ifxKE5Z2y.i:(.text+0x1a88c): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x1aaed): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x1ab5b): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x1acc6): undefined reference to `__tgt_push_mapper_component'
ld: ifxKE5Z2y.i:(.text+0x1adda): undefined reference to `__tgt_push_mapper_component'
ld: EnvField.o:ifxKE5Z2y.i:(.text+0x1aeee): more undefined references to `__tgt_push_mapper_component' follow
make: *** [makefile:222: dynemol] Error 1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you please provide a small reproducer?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I get a similar output when I try linking code that was compiled in debug mode with code that was compiled with some optimisations. This works fine with ifort, but not with ifx.
Unfortunately, this only happens on our rather larger code base, but not for the minimal examples I tried.
Compiling and running the code base completely either in debug or optimized mode works fine.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We have some issues with Od that will be fixed in the next release. This means similar reports are already in the system and have been fixed. Hopefully, this will also cover your use case.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page