Troubleshooting

DOORS Connection

Debugger

License Errors

Additional Guidance

 

DOORS Connection

Cannot connect to DOORS Application because the DOORS COM automation is not correctly registered

COM automation is the technology supported by DOORS which allows third-party tools like the DXL Editor to connect.

If the DXL Editor fails to connect to DOORS client:

  1. Ensure the DOORS client is installed on your local workstation (where the DXL Editor is also installed) and is not accessed through a virtualization platform like Citrix.

  2. Contact your Windows Administrator to fix the registration of the DOORS COM Automation. This can done using one of the following steps:

    • Start once the DOORS client as a Windows Administrator and then close it.

    • Or explicitly invoke the registration of doors.exe in the Windows registry:

      1. As a Windows Administrator, open a Command Prompt.
      2. Execute the following command line: <DOORS_Install_Dir>\bin\doors.exe /regserver

    Successive connections as a regular user should be successful.

  3. Upgrade to the latest version of DXL Editor. If for example you recently upgraded to a new version of DOORS, you might also require a more recent version of the DXL Editor.

Note: early versions of DOORS 64-bit clients were known to have their COM automation incorrectly registered, as detailed in an IBM Rational defect: http://www-01.ibm.com/support/docview.wss?uid=swg1PI21533

 
DXL Editor executes another version of the DOORS client than the one I use

DXL Editor does not launch on its own a DOORS client but requests COM automation to connect to the active DOORS client. COM automation is the technology supported by DOORS which allows third-party tools like the DXL Editor to connect.

If you have your DOORS client already open and executing a DXL file from the DXL Editor launches a different version of the DOORS client, that indicates your COM automation is not correctly registered.

Only one version of DOORS client is accessible through COM automation. If you installed a newer version of DOORS client without uninstalling the previous one, the previous DOORS client might still be the one registered and use by COM automation.

To change the DOORS client accessible through COM automation:

  1. Close the active DOORS application, if any.
  2. As a Windows Administrator, open a Command Prompt.
  3. Execute the following command line: <Older_DOORS_Install_Dir>\bin\doors.exe /unregserver
  4. Execute the following command line: <Newer_DOORS_Install_Dir>\bin\doors.exe /regserver
 

Debugger

My DXL variable is not listed in the Variables view
  1. Ensure the variable is explicitly typed. Auto-declared variables are not handled by the debugger.
    Check the known limitations on unhandled variable patterns.
     
  2. Is it a global variable? By default global variables are not displayed if the selected stack frame is not the root one (e.g. <Main>). You can turn on an option to always display global variables (see Variables View reference for more information).
 
My DXL variable display is weird in the Variables view

The underlying object might be in a state in which the display of its content is irrelevant. For example, if a buffer is deleted, trying to display the content of the buffer gives a weird character sequence. Unfortunately DOORS does not always provide a mean to determine whether an object is in a "safe" state.

The workaround is to modify the DXL code to set to null a variable as soon as this variable becomes invalid. (e.g. once the object is closed or deleted).

 
I have syntax errors when I debug my DXL file
Try to execute your DXL program in Run mode.
If your execution in Run mode is successful and if you have syntax errors only in Debug mode, then the DXL debugger is the one to blame.
Pleaser see below how to request help from our support team.
 
I cannot step into a function defined in an included file
  1. Verify the debugging scope in the Preferences, that determines if the debugger will analyze included files. By default the debugger will not analyze DOORS DXL standard library for example.
     
  2. The debugger may also have failed to resolve the include statement to an absolute path in the file system if you launched DOORS with addins path overriden in the command line. See the known limitations for more information.
 
The debugger fails with: "function terminated without executing return statement"
If this message doesn't occur in Run mode, it probably means a function is using an implicit return statement.
For example:
string f1() { return "hello" }
string f2() { f1() /* no return statement */}
print f2()

As you can see, f2() declares string as return type, but its body doesn't contain any return statement. Surprisingly this code runs correctly. But the debugger complains on a missing return statement. That's because the debugger will insert additional function calls under the hood, as stated in the debugger architecture, and thus will reveal this code weakness.

The workaround is to always explicitly use a return statement in your functions.

 
The debugger fails with: "doors.exe caused an EXCEPTION_ACCESS_VIOLATION in module kernel32.dll"
This can happen when you are calling the realize function, with arrays that were initialized in another function call.
For example:
void createWindow(DB window) {
    string options[] = {"Option1", "Option2"};
    verticalRadioBox(window, "Options:", options, 0);
}

DB window = create("Test", styleFixed); 
createWindow(window);
realize window; // realize with invalid array
show window; 

An array is created in the createWindow(DB) function. By the time realize() is called, the createWindow(DB) is exited, and the array is not valid anymore (it's a local variable).

This code runs correctly because no additional function is called between createWindow(DB) and realize(). But the debugger will fail, precisely because it will insert additional function calls under the hood, as stated in the debugger architecture, and thus will reveal this code weakness.

The workaround is either:

  • to put the realize() call at the end of the createWindow(DB) function,
  • or to make the array variable a global variable, that will remain valid by the time realize() is called.
 
I use show(DB) to display my dialog but it is modal
The Debugger redefines the show(DB) function to call block(DB) instead, as described in the known limitations. So, by design, your dialog box will always be modal when running the DXL in debug mode.
 
A Diagnostic Log window is opened when I close my dialog box
If it does not occur in Run mode, it probably means you are calling the destroy(DB) function from a callback. This function should never be called in a callback, as stated in the known limitations.
 
Sometimes the execution is not suspended again once I hit Step Into
When the debugger is suspended and you hit Step Info, the execution is resumed until the next DXL statement is to be executed. If after a period of time the debugger is still not suspended again, you may try click Suspend. This will force the DXL Editor to double-check if the DXL server is not already suspended.

 

License Errors

Can't connect to license server (-15,3002)

First Verify the license location you entered in preferences:

  1. In DXL Editor, click "Windows > Preferences" and "DXL > License".
  2. Make sure the server location entered here (e.g. @myserver) is the one your system administrator communicated.

Notes:

  • The server location may include a port number (e.g. 27000@myserver) only in the case the system administrator explicitly assigned the exact same port number in the license file on server side.
  • If accessing through a VPN, you may need to specify an FQDN [host name].[domain].[tld] (e.g. @myserver.mycompany.com)

Secondly Verify your workstation has network access to the license server:

  1. Open a Windows Command Prompt.
  2. Type "telnet host port" (e.g. "telnet myserver 27000") and verify you can successfully connect to this port.

Thirdly Have the site administrator check the license manager is running and accessible, using those steps on license server side:

  1. Check the license server manager (lmgrd) has been started: In LMTOOLS, click the "Start/Stop/Reread" tab and "Start Server".
  2. Check the firewall is configured to allow an inbound connection on the port referenced in the license file (or the range 27000-27009, if not explicitly set).
  3. Check vendor features (e.g. "sodius") are not mixed within the license file. You need to separate licenses of, for example, IBM Rational from the Sodius ones (i.e. use different license files).

If none of these steps resolve the issue, contact Sodius support and communicate all relevant information, notably the log files of the license server manager for analysis.

 
Feature Is Locked To A Different Host (-9,3035)

The hostid of your workstation does not match the hostid specified in the license file. This usually means your actual hostname is not exactly the one you gave to Sodius.

Your actual host name is displayed in the license error message. You can also verify your workstation host name by opening a Windows Command Prompt and typing "hostname".

Contact Sodius support and provide the actual host name as displayed in the error message.

 
No Such Feature Exists (-5,3037)

Here are the possible causes:

  • Your license file does not contain a feature required for the capability you are trying to use.
  • Your license file contains the feature required but not for the actual version of the product. This can happen if you have a license for a previous version of the product and have upgraded the product without upgrading the license.

Contact Sodius support to verify you have the adequate license for your evaluation or for the product you purchased.

 
All Licenses In Use (-4,3027)

This error occurs when the maximum number of concurrent of users is reached. You may wish to purchase additional licenses to avoid this error message appearing.

Floating licensing, also sometimes known as concurrent licensing or network licensing, is a software licensing approach in which a limited number of licenses for a software application are shared among a larger number of users over time. When an authorized user wishes to run the application they request a license from a central license server. If a license is available the license server allows the application to run. When they finish using the application, the license is reclaimed by the license server and made available to other authorized users.

 
Can't Find License File (-1,4042)

This error occurs when the license file has been moved to a different place within your file system. You can change the license location in the preferences:

  1. In DXL Editor, click "Windows > Preferences" and "DXL > License".
  2. Click "Browse..." to select the license file is your file system.
 
Feature Is Expired (-10,3041)

The license file is not perpetual and has all or some features that have expired. Contact Sodius support to request a new license file if required.

 
Authentication Failed (-8,4048)

This error occurs when an invalid (inconsistent) license key or signature is found. The license key/signature and data for the feature do not match. This usually happens when a license file has been altered. Contact Sodius support to request a new license file if required.

 
Invalid Server Port Number (-500,3034)

This error occurs when the port number is incorrectly set. The license location notation is port@host and not host@port. In DXL Editor, click "Windows > Preferences" and "DXL > License" to fix the license location.

 
Does Not Support Feature Version Requested (-25,3027)

Your license file does not contain the required version of a feature. This can happen if you have a license for a previous version of the product and have upgraded the product without upgrading the license.

Contact Sodius support to verify you have the adequate license for your evaluation or for the product you purchased.

 

Additional Guidance

I want to request for help!

If your issue is not listed in the known limitations and if the troubleshooting guide didn't help, please contact our support team.

We will analyze your test case to find the origin of the problem. We will try to find a workaround so you can debug your DXL file with a slight change in your code. Your test case will help use to improve the Debugger.

Related concepts
Debugger

Related reference
Debugger Architecture
Debugger Known Limitations