This section describes the whole set of noteworthy fixed problems in the 2002.05.21 release.
In some cases, instrumented code of ternary expressions does not compile.
A gap between comment line in fdc file causes the problem. This error appears only on Windows. Error : While analyzing, syntax error near /BRANCH [.\AMMCSCRIPTPARSER_ACTOR.fdc:10784] While analyzing, syntax error near /BRANCH [.\AMMCSCRIPTPARSER_ACTOR.fdc:10791] While analyzing, syntax error near SHORTCUT [.\AMMCSCRIPTPARSER_ACTOR.fdc:11810] While analyzing, syntax error near /COMMENT [.\AMMCSCRIPTPARSER_ACTOR.fdc:11810] While analyzing, syntax error near SHORTCUT [.\AMMCSCRIPTPARSER_ACTOR.fdc:11811
Goto labels inside switch blocks are placed inside another block by the instrumentor. The compiler cannot compile this correctly and reports a syntax error. Example: int foo::goto_error(int x, char*s, char *s1) { switch (x) { case 1: goto Where; case 2: x++; goto Where; case 3: // int y; /*as a workaround uncomment this */ Where: x+10; if (strcmp(s, s1)!=0) { cout << "we will, we will, fix this..."; } } return(x+10); }
Coverage results are correct when run in "pass" mode, but not when run in "compact" mode.
Instrumentor does not declare probes for all generic instantiations. Generated code does not compile.
When instrumenting, a variable type is replaced by its general type instead of correctly using its subtype.
Memory optimization often implies use of non aligned data that can create a problem when trying to detect memory leaks.
When running the base station example on RedHat Linux 7.2 2.4.7-10smp after adding the
--atl_multi_threaded=1 to the instrumentor, the program that is generated does not run
to completion. Under the debugger it stops in __sigsuspend. This is due to a nested mutex lock that provokes a deadlock.
The instrumentor attolccp terminates abnormally when the option -mempro is used.
When running an application instrumented with the option DUMPRETURNING, the application crashes during the trace dump.
With a C++ code the instrumentor generates bad C++ code which contains some incorrect positioning of brackets. Error like : nrl.cpp nrl.cpp: Instrumenting... nrl.cpp: Compiling... nrl.aug.cpp C:\Clients\Elektrobit\PbCoverageCPP\nrl.cpp(24) : error C2226: syntax error : unexpected type 'std::complex' Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
When opening the coverage report, only the navigator window can be seen because it is too big.
With the -pedantic option, gcc 2.96 errors on malloc and free not having the same prototype.
They should throw exceptions but the overloaded functions provided in the Target Deployment
Port do not throw exceptions.
The TestRT plugin to Rose RealTime does not generate a makefile that makes. The make program reports an error message about a circular dependency.
When a very large classpath is used, the error "Arg too large" occurs.
attolcc does not instrument the source code when the compiler option -MD is specified. Example attolcc -- gcc -MD -c toto.c
Instrumentor does not accept "friend T;" when T is a template Example: template <class T> class X : public Y { friend T; };
There is a problem in the runtime tracing feature with implicit copy constructors.
The following error message is given: ':: ' is not an immediate base class of ' :: '
With runtime tracing, copy constructors are created for unions which do not compile with GNU 2.96
as all elements of the union were copied.
Creating a 'External Command' using the Studio environment variable like $$NODENAME, $$NODEPATH,
$$TARGETDIR, $$BINDIR, ... does not work. Example : External Command = "cmd /c dir $$NODEPATH"
When attempting to generate a Coverage report on HP-UX, Studio crashes when the number of .fdc files is ~>100.
The failure happens when trying to register keys in the registry database.
After "Stop" for a running build process, the message "Build completed" is shown.
This only occurs with projects referencing a big number of files. Studio is checking for intermediate files (perl.exe continues to run in the background).
When instrumenting, the following error message occurs: P+Linux attolccp: "/usr/include/asm/spinlock.h", line 168: error #20: identifier "__builtin_constant_p" is undefined "__builtin_constant_p()" is a function that is built into the compiler so it does not have a prototype, hence the error message
STATUS_ACCESS_VIOLATION raised during Runtime Analysis activity creation if ENV_PATH variable
in TDP ini files set too long.
When instrumenting source code that uses variable argument macros va_arg() etc. The following errors occur: P+Linux attolcc1 - ERROR: syntax error near int [va_arg.c,12] P+Linux attolcc1: Cannot recover from earlier errors ... P+Linux attolcc - The following command-line caused an error: attolcc1 /tmp/_atc_51_22800.i /tmp/_atc_53_22800.c atct.def -bloc -proc=ret -mempro -perfpro -trace -COMMENT= Preprocessing command: gcc va_arg.c -g -O0 -Wall -pedantic -E>tmp-file P+Linux attolcc clinuxgnu - ERROR: Error during code instrumentation
When instrumenting source code that uses variable argument macros va_arg() etc. The following errors occur: P+Linux attolccp: "va_arg.cpp", line 9: error #20: identifier "__builtin_stdarg_start" is undefined __builtin_stdarg_start((ap),numArgs); ^ P+Linux attolccp: "va_arg.cpp", line 11: error #254: type name is not allowed Total += __builtin_va_arg (ap, int); ^ P+Linux attolccp: "va_arg.cpp", line 11: error #20: identifier "__builtin_va_arg" is undefined Total += __builtin_va_arg (ap, int); ^ P+Linux attolccp: "va_arg.cpp", line 13: error #20: identifier "__builtin_va_end" is undefined __builtin_va_end (ap); ^ P+Linux attolccp - FATAL ERROR: Syntax and/or semantic errors in source file, in strumentation cancelled
The License Administration Guide document provided with the product refers to Rational Suite, but in fact also applies to Rational Test RealTime as well as other Rational Software products.
The option -g3 results in the #defines remaining in the .i file. It also causes the predefined defines "__DATE__", "__TIME__" etc to be redefined at the beginning of the file. After instrumentation the compilation of the instrumented file results in some warning of the following type: file.c:0:warning: `__DATE__' redefined The option -Werror converts the warning to an error and the compilation stops.
Work-Around :
There are 2 workarounds but both require modification of the compilation flags: 1. Don't use -g3, use -g2 or even simpler -g 2. Don't use -Werror in this case the redefinition warning is no longer an error and the compilation will continue.
When first running the examples on a UNIX machine, the TDP selected by default is "C Visual 6". The Build stops with an error.
Work-Around :
Select the correct TDP for the given operating system.
When you exclude an unit from instrumentation in Java, it is necessary to add manually the package name. For example, you want to exclude from the instrumentation the UmtsServer Class: Setting / Runtime Analysis / General Runtime Analysis / Selective Instrumentation Selective Unit Instrumentation = UmtsServer is proposed automatically. You must add manually the package name. Selective Unit Instrumentation = package_name.UmtsServer So, in this case the correct setting to enter is: Selective Unit Instrumentation = baseStation.UmtsServer
Work-Around :
Set manually the package name before the class name for exclusion.
When editing a file the save icon becomes accessible. If another file is selected in the asset browser then the save icon becomes inaccessible. It is then difficult to save the modifications in the file.
Work-Around :
1. Click 'x' or right-click the file tab and select close. A dialog appears asking if the file should be saved. Obviously, the file must be re-opened to continue editing. 2. Create a second tab, either by opening another file or raising the Start page (ctrl+alt+r). Move between the tabs and the Save icon is reset.
When using the wizard to generate a test node based on a procedure only, the unit is not
shown in the dialog to select the code under test.
Work-Around :
Press cancel within the wizard, go to the project window, select the
Asset view > "By File," select the file containing the procedure to be tested,
and click on the right mouse button. Select the "Test..." field.
The wizard will reopen, and this time the Unit under test is correctly selected.
Proceed as usual.
JVMPI classes are not filtered in the runtime tracing report. This affects all runtime tracing reports other than the one that is dynamically generated during application execution.
Work-Around :
JVMPI is only used by the memory profiling feature. When memory profiling is not performed, the JVMPI classes will not appear in a runtime tracing report.
Running the GUI from a Solaris session displaying to a Exceed version 5.00 server running
on Windows 2000 causes the server to abort.
Work-Around :
Upgrade to Exceed 7.0 or later.
Limited choice of colors available for the GUI on HP-UX workstations running CDE on a 256 color display.
Work-Around :
Use the QtConfig tool to customize the color map.
Trace C++ - 2002.05.00/1165 (2002) The by default sequence diagram printing functionality does not work correctly
On Unix and Windows, the by default UML/SD printing functionality does not work correctly (when all the pages are selected for printing, only the first page is printed). This printing defect occurs only for the UML/SD diagram.Work-Around :Select a range to print for example page 1 to 6.