Supported Platforms
- Linux Red Hat 7.2, 7.3 and 8.0
- Linux SuSE 8.1
This section describes the whole set of noteworthy fixed problems in the
2003.06.00 release.
All Runtime
Analysis C++ And C - 2002.05.21/2409 attolcc does not handle the -MM
option to the GNU compiler correctly
attolcc does not handle the -MM option to the GNU compiler correctly. This option only generates the makefile dependencies. attolcc then tries to instrument these dependencies which is incorrect.
Code Coverage C++ And C - 2002.05.21/2563 INTERNAL ERROR: Empty Fifo in PopIfdef
When instrumenting C or C++ code with the following syntax:
#if 0 /* We curently
have no (socket) API for letting UDP actively participate ... */ i.e. a comment
on the same line as a #if, then the following error occurs:
TestRT attolcc1- INTERNAL ERROR:
Empty Fifo in PopIfdef() [halstead.inc:232] TestRT attolcc
- The preceding command-line caused an error
Code Coverage C++ And C - 2002.05.21/2561 (-) Monstrous macro makes Coverage viewer choke.
Huge macro expansion might result in incorrect coverage percentage calculation.
Code Coverage C++
- v2002 Release 2/2093 Instrumentor inserts probe before semicolon
The instrumentor inserts a probe before the terminating semicolon which results in code that does not compile.
Code Coverage C++ - 2002.05.21/2626 InstumentOr omits struct keyword when instrumenting.
Ternary expression with '0' as assignment for the false branch results, when
instrumented in incorrect code (incomplete cast when struct keyword necessary).
Coverage C++ - 2002.05.21/2519
Activation of signal handling results in incorrect code.
"atc.c", line 780: Error: _atc_register_signal() was previously declared "extern", not "static".
attolccp failed with a very long COMMENT argument.
A semi-colon is misplaced in case statement causing a compilation error.
With Coverage level MC/DC selected, the error "symbol __atc_init_const_compound_done multiply defined" is seen at link. This behavior was observed when several instrumented sources containing multiple conditions are linked together and when RTRT_VARIABLE_INIT_SUPPORTED is set to 0 in the used TDP.
Add documentation for the syntax format of the Configuration Settings > "additional Objects or Libraries" field
When trying to access source control via File->Source Control the "Source Control" option is grayed out. In order to activate or make this option available you must do the following: 1. Go to Edit->Preferences 2. Select CMS 3. Under "Selected Configuration Management System" select the source control tool from the drop down list 4. Click ok Now, if you go to File, the "Source Control" option will be available.
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.
If the C/C++ libraries shipped within the standard Linux distributions have been replaced by more recent libraries, then the command line interface tools might terminate abnormally.
When instrumenting with Memory Profiling the instrumented code does not compile due to the use of "for" variables outside of the "for" block. Example: class I { int Value; public : I(int v) { Value = v; } bool operator >= (int v) { return Value >= v; } I &operator -- () { Value--; return *this; } operator int () { return Value; } }; int main ( void ) { for ( I i = 3; i >= 0; --i ); return i; } NOTE: This is an old style syntax and illegal in ANSI C++ as the "for" variables are now limited to the interior of the "for" loop.
The instrumentor generate access to an unused var because this one has the same name as the local var (here foo)
and the compilation fails. extern char foo[10]; int main () { char foo[10]; foo[0]=0; }
The following code cannot compile after instrumentation because the instrumentor insertion var access, after the
static X x declaration. class X; class Y { static X x; }; class X { public: X() {} }; X Y::x;
The instrumentor generates ambiguous access to 'Z::_atp_parse_globals' int i; class X { static int a; public: static void x() {a=0;}; }; class Y { static int a; public: static void y() {a=0;}; }; class Z : public X, public Y { public: static void z() {}; }; void foo() { X::x(); Y::y(); Z::z(); }
Memory Profile report viewer abnormally terminates when attempting to view a Memory Profiling report that loads a specific static (TSF) file.
When trying to filter what to include in the Performance Profiling viewer, there seems to be no help
connected to the dialog (Performance Profile:Filter). The only help that comes up is about the UML/SD viewer.
Rounding error in the performance viewer. Very small results in the "F time (% of .root)" is rounded to 0.1.
Runtime Analysis C++ And C - 2002.05.21/2620 Instrumentation errors occur with unnamed structs
Instrumentation errors occur with unnamed structs
Runtime Analysis C++ - 2002.05.21/2616 "_ATP_PARSE_GLOBAL" passed 2 arguments, but takes 1
Compiler error occurs in _ATP_PARSE_GLOBAL macro because the macro passed
two arguments but macro is expecting only one.
Runtime Analysis C++ - 2002.05.21/2600 (-) error #264: invalid base class
Error "error #264: invalid base class" raised when declaring an array of
zero size reduced to warning.
Work-Around:
Reduce the error to a warning, which allows the instrumentation and compilation
to complete. This can be done by modifying the file /targets/clinuxgnu/ana/atl.opp
and adding the line --diag_warning 264
Runtime Analysis
C++ - 2002.05.21/2529 Instrumentor should not pass the -frepo option
to the compiler
Instrumentor should not pass the -frepo option to the compiler
The attolccp instrumentor is not MS VC++ 6.0 compliant and fails emitting #80 and #793 error messages
tuc45% attolccp ActivationState.cpp ActivationState.aug.cpp atl.hpp atl.opp -PERFPRO TestRT attolccp: "source_files/FixedSizeAllocator.h", line 42: error #894: function "operator<<" is not a template friend ostream & operator<< <>(ostream &stream, const FixedSizeAllocator&right);
When a class contains a member variable that is an array of arrays and there is no default constructor, then the instrumented file does not compile.
If a long string is entered into the "Others" text field of the Rational Test RealTime plugin to MS Visual 6, then the next time the dialog box is reopened the plugin will be disabled. The options set are taken into account and the instrumentation is performed. It is when the options dialog box is reopened that the plugin is reset.
Compiler error when the preprocessor inserts a #line into the middle of a return statement containing a call and when one of Runtime Tracing, Memory Profiling or Performance Profiling are
selected.
The problem seems to be when "pthread_exit" is called, the return statement is never reach. In fact pthread_exit is not supported.
The code that is generated by the C++ Component Testing compiler is instrumented with contract checking enabled for a particular class then the following error can occur: file.h:67: macro `_ATT_FIELD_MTD' used with too many (3) args
The user interface aborts whilst reading in the test results with the message Arithmetic Error (core dump)
Instrumenting code with variable argument macros va_arg() yeilds these errors: ERROR: syntax error near char ERROR: syntax error near "arg %d = %s\n" Cannot recover from earlier errors ERROR: Error during code instrumentation
During the instrumentation a segmentation fault occurs.
The instrumentor detects an internal error is stl_deque.h and stops: P+Linux attolccp: "/usr/include/g++-3/stl_deque.h", line 323: internal error: assertion failed at: "class_decl.c", line 1310 { _Node_alloc_type::deallocate(__p, __deque_buf_size(__bufsiz, ^
When user clusters up some libraries and tries to pass them down to the linker with a
-Wl,--start-group leaky.o empty.o -Wl,--end-group, attolcc lays them out for the link
without 'enclosing' them. This causes undefined symbols during linking. When I cluster up some libraries and try to pass them down to the linker with a -Wl,--start-group leaky.o empty.o -Wl,--end-group, attolcc lays them out for the link without 'enclosing' them. This causes undefined symbols during linking.
The Performance Profiling Viewer sorts the methods by the first letter of the method signature that is usually
the return type and not the class and method name. The report is now sorted in the same order as the functions appear in the source code.
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.
Runtime Tracing C++
- 2002.05.21/2454 When instrumenting templates the wrong template parameter
name is chosen.
When instrumenting templates the wrong template parameter is chosen. The template parameter name is from the template declaration not from the instantiation. Hence the error messages of the following kinds occur: RefHashTableOf.hpp: In method `RefHashTableOfEnumerator::RefHashTableOfEnumerator(const RefHashTableOfEnumerator &)': RefHashTableOf.hpp:279: type/value mismatch at argument 1 in template parameter list for `template XMLEnumerator ' RefHashTableOf.hpp:279: expected a type, got `TElem' RefHashTableOf.hpp:279: class `RefHashTableOfEnumerator ' does not have any field named `' or The identifer "_T2" is undefined template char *std::Alloc_traits<_Tp,std::allocator<_T2> > ...
The following code, when instrumented with runtime tracing does not compile: #include <hash_map> template <typename Key, typename Value> struct MyPair : public pair { MyPair(const Key& k, const Value& v) : pair<Key,Value>(k, v) {} }; int main() { return 0; }Studio All - 2002.05.21/2618 If the .rtp file is read-only, all changes to the project are lost.
When Studio detects changes to the project, it asks the user whether he/she
wishes to save the modifications to the .rtp file. User says "yes", then Studio
detects that the .rtp file is read-only, it then just informs the customer
that it's unable to save the file.
Studio C - 2002.05.21/2517
Cannot deselect External command on top project level
External commands are always executed even if checked for no build.
If for some reasons a project fails when building, Rational Test RealTime stops and will not try to execute
the next project on the list.
Selection of single build stages does not function properly.
Problems encountered whilst importing a specific Makefile on the Linux platform where no files were imported.
If an activity node is minimized and a build is performed then no green ticks appear when the node is maximized.
Doing a clean does not clean all the generated files.
When building a test node after modifying just one file in the node then all the files in the node are rebuilt.
Adding more than 1000 source files into a project might require a lot of memory.
Files added to the wizard during a first run, diseappear from the list when the wizard is run again.
There is no way to pass arguments on the "java" command line.
Through the settings it is possible to pass parameters to the main() function but it is not possible to pass values to the Java Virtual Machine.
Instead of replacing the selected string by the one in the buffer, the buffer is inserted somewhere in the selected string.
Performance Profiling Viewer Find function does not search the document from top to bottom.
Strings that have been entered for searching are not stored in the combo box list.
Find function in Performance Profiler does not find all occurrences of a text string.
When a unit is excluded from instrumentation in Java, it is necessary to add manually the package name.
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.
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.
Target
Deployment Port C++ And C - 2002.05.21/2557 Studio: 'Build->Linker->Directories
for Libraries' field does not work
'Build->Directories for Libraries' field is not used during the build.
Target Deployment
Port C - 2002.05.21/2533 xdp contains function declaration without
asterisk '*' should be void* usr_memcpy()
The .xdp file contains function declaration without asterisk '*' should be void* usr_memcpy().
Creating a test node which contains spaces and building the node causes an error, as the tests scripts ( .otd, ... ) has been created with the Node name the compilation failed.
There is a defect in file atp.c in function _atp_suppress_from_freeq. The _atp_last_freeq list will never be freed.
The information is not passed on to the compiler/linker. The TDP has to be modified: The "$libs" variable in the atl_link function has to be passed to the command line.
When trying to use the macro ENV_SET_IF_NOT_SET_VARIABLE (for example: ENV_SET_IF_NOT_SET_WIND_BASE), the variable does not get set at all.
Intermediate files with the extension .aug.c[pp] cannot be compiled with compilers that do not allow
double-dot extensions.
Code Coverage C - 2002.05.21/2322 (-) Instrumenter does not recognize valid ANSI-C syntax for floating constants
Binary exponent part indicator 'p' or 'P' not recognized by the instrumentor.
Work-Around:
#pragma attol accept "p2047" in atct.def
Coverage results are now output into the file "atlout.spt" and in create mode. The file 'attolcov.tio' is created by calling the batch tool atlsplit on the 'atlout.spt' file. The default filename 'attolcov.tio' can still be changed using the "ATC_TRACES" environment variable. The test timestamp (line DT in the tio file) is written by the atlsplit tool and not anymore by the TDP.
Documentation Java - 2002.05.21/2621 (-) Environment settings for javic in batch mode not explained.
Classpath environment variable has to be set correctly when launching javic
on the command line. Work-Around: Initialize the current environment accordingly.
Further details areavailable in the Solution Document nr.
184402801 at http://solutions.rational.com/solutions/search.jsp
Documentation C++ And C - 2002.05.21/2610 (-) Documentation: Incorrect instructions for "Creating an Activity"
Incorrect instructions for "Creating an Activity" in the Runtime Analysis Tutorial
Memory Profiling
C++ - 2002.05.21/2613 (-) P+Linux: 'throw 1' causes MLK to be reported against
it.
Memory leak reported against 'throw' statement.
Instrumentation error #338: more than one instance of overloaded function
Studio C++ - 2003.06.00/2603 (-) Unable to match the declaration and implementation of a method when using namespace
Using namespaces in C++, the parent name of an implementation method, usually
written in a .cpp file, is not complete although the parent name declaration
is correctly fully qualified. Two consequences :
- When using the Component Testing for C++ activity wizard and testing a
class or a method belonging to a namespace, the file containing the implementation
is missing and the user must manually add it in the tested files list.
- Right-clicking on such a method in the Asset Browser and selecting Go To
Implementation/declaration displays a warning message explaining the inability
to find the corresponding implementation/declaration.
When opening several reports, the tab of the last might be hidden.
Work-Around :
Resize the report window.
After a HTML generation, the generated .png file does not represent fully the original graph (texts of legend bar are truncated).
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.