homepage › Forums › BridgePoint/xtUML Usage and Training › [Event cannot happen] printing conflicting event number in the executable trace
- This topic has 6 replies, 2 voices, and was last updated 2 months, 4 weeks ago by cort.
-
AuthorPosts
-
February 1, 2024 at 7:39 am #7758SchmillParticipant
When using the verifier, I get a well formatted message indicating the event that cannot happen in the current state. but when observing the trace oof the generated executable, I can only see the state number.
I tried to modify the dispatch function by adding
printf( "Event: %s \n", GetOoaEventNumber( event ));
but unfortunately this yields null.How can I trace the conflicting event Number?
Thank you.
February 1, 2024 at 10:34 am #7759cortKeymasterDid you mark the state transition tracing on? (.invoke MarkStateTransitionTracingOn( “*” ))
This mark is found in the domain.mark file.February 1, 2024 at 11:07 am #7760SchmillParticipantIndeed this mark is enabled. but I do not get the event number, here is a sample trace:
Event cannot happen: ND current_state = 3
February 1, 2024 at 11:21 am #7761cortKeymasterHmm, that looks like it should work.
February 1, 2024 at 11:53 am #7762SchmillParticipantI used the
UserEventCantHappenCalloutf
now with the lineprintf( "Event: %hhu in state: %hhu \n", event_number,current_state);
prints:
Event: 0 in state: 3
Also cheeked in another place with different Cannot Happen, it is also 0.February 2, 2024 at 9:15 am #7763SchmillParticipantIt appears that I was confused by the fact that event_number does not correspond to the event numbers displayed in Bridgepoint, so 0 is a valid number.
February 2, 2024 at 11:03 am #7764cortKeymasterRight, there is a mapping. Because BridgePoint allows event numbers to be anything. And the dispatcher needs to index into an array.
-
AuthorPosts
- You must be logged in to reply to this topic.