Consolidation of the TRACE32 Arm Debugger Executables into "t32marm" & Deprecation of "t32marm64"
The TRACE32 debugger executables for the Arm architecture have been consolidated in 2021. This allows users to debug and trace all Arm based chip variants in one executable. That also means it is no longer necessary to deal with different executables for 32-bit or 64-bit Arm cores. The single, consolidated executable is the already known t32marm.
With only one executable required, the former executable for 64-bit Arm cores is now treated as deprecated and is replaced by a redirect mechanism.
Major Changes
t32marm is functionally enhanced and now incorporates all debug and trace features for all 32-bit and 64-bit Arm based chips.
t32marm64 is replaced by a redirect mechanism. A redirect executable (Windows) or redirect script (Linux/MacOS).
Available Since
Interim/Nightly release: N.2021.02.000131488
The roll-out of the consolidated Arm executable started on 10th February 2021 with software version N.2021.02.000131488.
Customers that had received interim updates with software versions N.2020.11.000128010 till N.2021.02.000131422 (4th November 2020 till 9th February 2021) have already received a preview of the consolidated executable. For these software versions, the Arm debugger executable had already been consolidated and both executables, t32marm and t32marm64, were functionally equivalent.
DVD release: 2021/02
The first DVD release that contains the consolidated Arm executable is 2021/02.
Consequences
As calls to the deprecated executable will result in a redirect to the new consolidated executable, it is expected that most users will not see any changes in their start environment.
An exception are Windows users with advanced start environments as well as MacOS users which directly access the bundle. Such users might be forced to adjust their environment immediately. See section "Detailed Changes" below for more information.
Lauterbach strongly encourages users to adapt their existing environments even if their current start environment is not directly affected by these new changes. That is to ensure that their start environment stays completely compatible with future versions of TRACE32. Lauterbach will stop distributing the redirect mechanism in the future after a separate period of notice.
New projects should only make use of the new as the single, consolidated executable for all Arm based chips.
Detailed Changes
Windows
1) Windows users referencing t32marm64.exe will now start the redirecting t32marm64.exe which will automatically call t32marm.exe and forward any command line parameters. During the redirect operation, a command prompt might be visible for a short moment.
2) Windows t32marm64.exe redirect limitations
Exit Code: Evaluating the Windows exit code of t32marm.exe, which can be retrieved e.g. via the Windows variable
%errorlevel%
, will no longer work when the starting call was redirected by t32marm64.exe. The value returned by%errorlevel%
will be the exit code of the redirect executable t32marm64.exe instead. Users relying on the exit code for their control and test environment and currently use t32marm64.exe will have to adjust their environment so that the correct exit code can be retrieved.Refer to "How to Adjust and Future Proof your TRACE32 Arm Start Environment".
Third-party tool integrations of TRACE32 for Arm might show unexpected issues, given the different start behavior of the redirect t32marm64.exe and the exit code limitation.
3) Users of T32Start have to make sure that their version of T32Start is V2.5.4 or higher (versions from 4th February 2021 or later). The latest version of T32Start should always be part of any TRACE32 update for Windows. Users will then be able to continue to work with their existing start configurations. T32Start will try to automatically detect and start the correct executable, independent of the Target: entry of the selected core configuration. Lauterbach still strongly encourages users to adapt their existing T32Start environments to stay completely compatible with future versions of TRACE32.
Linux
Linux users referencing t32marm64 will now get a warning printed into the shell and the starting call is redirected to start t32marm.
MacOS
1) MacOS users referencing the provided shell script t32marm64-qt will now get a warning printed into the shell and the starting call is redirected to start t32marm-qt.
2) The bundle t32marm64-qt.app is no longer distributed in TRACE32 updates.
Users referencing the bundle directly have to adjust their start environment immediately to continue to use TRACE32 for Arm.
Refer to "How to Adjust and Future Proof your TRACE32 Arm Start Environment".
PRACTICE Function: OS.PresentExecutableFile() (OS.PEF())
As the new TRACE32 start environment for Arm always tries to call the executable t32marm, the PRACTICE function OS.PEF() will therefore also only return the execution path to t32marm. PRACTICE scripts that rely on the output of OS.PEF() for the purpose of differentiating between script execution paths for 32- and 64-bit cores need to be adjusted. A possible solution are script parameters.
How to Adjust and Future Proof your TRACE32 Arm Start Environment
To adjust and future-proof your Arm start environment, references to the old t32marm64 executable have to be exchanged with references to the new t32marm executable.
Windows
If you use t32start.exe to start your 64-bit Arm core environment, make sure the version of T32Start is V2.5.4 or higher (versions from 4th February 2021 or later). The latest version of T32Start should always be part of any TRACE32 update for Windows.
You should then change the Target: entry of your core configuration from ARM64 into the more generic ARM/XScale/Janus.
If you start t32marm64.exe via a script or directly via the command prompt, you need to start one of the following executables depending on your Windows version. They are found in your TRACE32 installation directory:
bin\windows\t32marm.exe (32-bit Windows executable)
bin\windows64\t32marm.exe (64-bit Windows executable)
Linux
If you start t32marm64 via a script or directly via the shell, you have to start the following executable, found in your TRACE32 installation directory:
bin/pc_linux64/t32marm (64-bit Linux executable)
MacOS
If you start t32marm64-qt via the provided shell script, you have to call the following script, found in your TRACE32 installation directory:
bin/macosx64/t32marm-qt (64-bit MacOS shell start script)
If you reference the bundle t32marm64-qt.app directly, you now need to reference the following bundle, found in your TRACE32 installation directory:
bin/macosx64/t32marm-qt.app (64-bit MacOS bundle)
Troubleshooting & FAQ
"I am using the PRACTICE command "TargetSystem.NewInstance" to start additional GUIs"
The command will continue to work regardless of the given /ARCHitecture option. Both command options to start additional Arm GUIs, /ARCHitecture ARM and /ARCHitecture ARM64, will automatically start the new consolidated GUI.
Command Line Parameters
Regardless whether you call the t32marm64.exe redirect executable or the functional consolidated t32marm.exe executable, all command line parameters will continue to work
I get the following message: "t32marm64 was replaced by a new consolidated t32marm"
If you see the above message you are trying to start the old t32marm64 executable which was replaced by a redirect mechanism. See "How to Adjust and Future Proof your TRACE32 Arm Start Environment" for details on how to avoid the warning.
On Windows, I get the following message box containing: "Failed to redirect to executable: 't32marm.exe'"
This error will occur when you try to start the redirecting t32marm64.exe executable but the consolidated t32marm.exe executable could not be found. For the redirect to work, both executables need to be located in the same directory. Make sure that is the case or adjust your start environment to avoid any future issue.
"I cannot change my start environment, and I am unable to use the provided redirect mechanism"
If you are unable to change your start environment and cannot make use of the provided redirect mechanism, you can apply the following workaround: When receiving a TRACE32 update, you can copy and rename the t32marm executable for the used OS into t32marm64 and overwrite the provided redirect mechanism. By this, a functional t32marm64 executable is available again.
Please Note: Lauterbach strongly discourages the usage of this workaround if the start environment can be changed. The workaround has to be applied for each TRACE32 update and also contradicts Lauterbach's official deployment method.
Add a comment