Details
-
Type: Maintenance
-
Status: Fixed (View Workflow)
-
Resolution: Unresolved
-
Labels:None
-
Old bug number:30102
-
environment:
-
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.