Uploaded image for project: 'Bug Archive'
  1. Bug Archive
  2. BUGARCHIVE-6584

Debugger: When Proc entry is set as Watch $status of executed Proc is changed

    XMLWordPrintable

    Details

    • Type: Maintenance
    • Status: Fixed (View Workflow)
    • Resolution: Unresolved
    • Labels:
      None
    • Old bug number:
      30102
    • environment:
      Hide

      +Uniface:
      * Version 8.x
      * Version 9.x

      +Operating System:
      * All Windows versions

      Database:
      * DBMS independent

      Show
      +Uniface: * Version 8.x * Version 9.x +Operating System: * All Windows versions Database: * DBMS independent
    • Patch version:
      E116,MX01

      Description

      Summary:
      Uniface: When a Proc entry is set as a Watch in the Debugger then the return
      value of the entry will change the value of $status. This has a direct
      influence on the Proc that is executed.

      Symptoms:
      When a Proc entry is set as a Watch in the Debugger then the return value of
      the entry will change the value of $status. This has a direct influence on the
      Proc that is executed.

      Consider the following scenario:

      1. The form FRM1 has the following Proc in the Exec trigger:

      debug
      call entry_does_not_exist
      if ( $status < 0 )
      message/info "Test 1: $status = [%%$status%%%]"
      endif

      2. In the Local Proc Modules trigger the Proc function (entry) procEnt1 is
      defined

      entry procEnt1
      return(1)
      endif

      3. The form FRM1 is run in test mode (e.g. idf.exe /tst FRM1)

      4. The Debugger is started and the user is stepping through the code

      4.a. After executing the call of the Proc function entry_does_not_exist the
      following is returned:

      $status = -1
      $procerror = -1119 => "Entry not valid"

      4.b. Next the if clause is evaluated and returns true. This causes that the
      info message is shown

      5. The form FRM1 is Executed again (e.g. idf.exe /tst FRM1)

      6. The Debugger is started and the user is adding the following watch:

      procEnt1()

      7. Now the user is stepping through the code again

      7.a. After executing the call of the Proc entry entry_does_not_exist the
      following is returned:

      $status = -1
      $procerror = -1119 => "Entry not valid"

      7.b. Next the if clause is evaluated and returns false. This causes that the
      info message is not shown this time

      => $status is not -1 anymore after executing the if-clause and it is now 0
      ($procerror is still returning -1119)

      Expectation: The evaluation of watches should not influence $status.

        Attachments