Main Content

Debug MATLAB Function Called by C Engine

When creating MATLAB® functions for use in engine applications, it is good practice to run the functions in MATLAB before calling them through the engine library functions.

After you integrate a MATLAB function into an engine application, you can use the dbstop and other MATLAB debugging commands to debug the function invoked by the engine application. You might need to add code to the application to pause processing so that you can enter a debug command, unless you attach the application to an existing MATLAB session.

Debug Engine Application on Windows

Assume that you have an engine application that calls a MATLAB function myfcn on Windows®. Add the following statement to your engine code before the call to myfcn. This code waits for user input.

fgetc(stdin);

Start the engine application. The application opens a MATLAB desktop and a Windows console application of MATLAB. At the desktop command prompt, type the following command. Make sure that the function is on your MATLAB path.

dbstop("myfcn")

In the console window, press Enter. MATLAB enters debug mode; type debug commands in the desktop command window.

Debug Engine Application Attached to Existing MATLAB Session

For information about using an existing MATLAB session, see Attach to Existing MATLAB Sessions. To debug function myfcn called by an engine application, first start MATLAB as an Automation server with one of the following commands.

  • From the system prompt:

    matlab.exe -automation
  • From the MATLAB command prompt:

    state = enableservice('AutomationServer',true);

At the MATLAB command prompt, type:

dbstop("myfcn")

Start the engine application. MATLAB enters debug mode; type debug commands in the MATLAB command window.