allow breapoints in graphic callbacks 28/21628/1
Cedric Delamarre [Tue, 24 Nov 2020 15:59:02 +0000 (16:59 +0100)]
Change-Id: Iaa635fd2b73e3d8b8170f30570a67fbe4225ff44

scilab/modules/action_binding/src/c/InterpreterManagement.c
scilab/modules/ast/includes/system_env/configvariable_interface.h
scilab/modules/ast/src/cpp/system_env/configvariable_interface.cpp

index 98f9c3c..b0b05d5 100644 (file)
 /*--------------------------------------------------------------------------*/
 int putCommandInScilabQueue(char *command)
 {
-    return StoreCommand(command);
+    if(isEnableDebug())
+    {
+        if(isDebugInterrupted())
+        {
+            return 1;
+        }
+
+        return debuggerManagerExecute(command);
+    }
+    else
+    {
+        return StoreCommand(command);
+    }
 }
 /*--------------------------------------------------------------------------*/
 /*
index 0b52408..7223126 100644 (file)
@@ -81,6 +81,7 @@ EXTERN_AST dynlib_ptr getEntryPointFromPosition(int position);
 
 EXTERN_AST int isEnableDebug();
 EXTERN_AST int isDebugInterrupted();
+EXTERN_AST int debuggerManagerExecute(const char* command);
 
 EXTERN_AST int isExecutionBreak();
 EXTERN_AST void setExecutionBreak();
index bb38085..be87993 100644 (file)
@@ -246,6 +246,11 @@ int isDebugInterrupted()
     return debugger::DebuggerManager::getInstance()->isInterrupted() ? 1 : 0;
 }
 
+int debuggerManagerExecute(const char* command)
+{
+    return debugger::DebuggerManager::getInstance()->execute(command) ? 1 : 0;
+}
+
 int isExecutionBreak()
 {
     return ConfigVariable::isExecutionBreak() ? 1 : 0;