To track down problems in an application built by DevOps Model RealTime, it is often necessary to debug into the RT services library implementation. This article describes the steps to take to be able to debug the C++ implementation of the RT services library.
An Model RealTime installation does not contain prebuilt debug configurations of the RT services library. Therefore, you have to start by building a debug configuration:
<Model RealTime-install-dir>/rsa_rt/C++/TargetRTS
folder to a place where you have write access.libset
folder, locate an appropriate target configuration to modify to become a debug configuration. In this example, we use the x64-VisualC++-17.0
configuration.libset.mk
and modify the variable LIBSETCCEXTRA to include the flag
$(DEBUG_TAG). This variable expands to the debug compilation flag of the compiler. You might also want to remove any specified optimization flags.src
folder. This folder contains all source code for the RT services library and also makefiles and scripts for building it.rtperl Build.pl <configuration> <make tool> all
where <configuration>
is the name of the target configuration to build (corresponds to a subfolder in the config folder, which should match the name of the libset subfolder you modified previously) and <make tool>
is the name of the make tool to use for building the library.
For this example, the command line looks like this:
rtperl Build.pl WinT.x64-VisualC++-17.0 nmake all
build-<configuration>
that is created in the TargetRTS folder. For this example, it is called build-WinT.x64-VisualC++-17.0
. This folder contains all the object files and also the *.olist files that contain the names of all object files. The object files are archived together to create the two libraries, which are located in lib/<configuration>
:libObjecTime.a
libObjecTimeTypes.a
main.mk
to not use the *.olist files. For example, change@ $(AR_CMD) $(LIBOUT_OPT) $(LIBOUT_TAG)"$@" "%A.olist"
@ $(AR_CMD) $(LIBOUT_OPT) $(LIBOUT_TAG)"$@" $(A_OBJECTS)