Promela 및 SPIN을 사용한 printf 출력?

KJ50

저는 Promela와 SPIN을 사용하려는 초보자입니다. 간단한 Promela 사양을 개발할 때 printf ()를 사용하여 프로그램의 변수 값을 확인하고 싶습니다. 이 매뉴얼 페이지를 읽고 간단한 hello world 프로그램을 실행하려고하는데 출력 텍스트가 표시되지 않습니다. 다음은 샘플 hello world 파일입니다.

init {
    printf("MSC: passed first test!\n")
}

컴파일하고 실행하는 데 사용하는 단계는 다음과 같습니다.

spin -a hello.pml
cc -o run pan.c
./run

실행 결과는 다음과 같습니다.

hint: this search is more efficient if pan.c is compiled -DSAFETY
(Spin Version 4.2.6 -- 27 October 2005)
        + Partial Order Reduction

Full statespace search for:
        never claim             - (none specified)
        assertion violations    +
        acceptance   cycles     - (not selected)
        invalid end states      +

State-vector 12 byte, depth reached 2, errors: 0
       3 states, stored
       0 states, matched
       3 transitions (= stored+matched)
       0 atomic steps
hash conflicts: 0 (resolved)

4.879   memory usage (Mbyte)

unreached in proctype :init:
        (0 of 2 states)

그렇다면 printf 문에서 내 출력을 어디에서 찾을 수 있습니까? 더 복잡한 promela 파일에서도 printf 문을 시도했지만 분명히 간단한 경우 먼저 작동하도록하고 싶습니다. 모든 통찰력을 주시면 감사하겠습니다. 감사!

GoZoner

SPIN 확인을 실행할 때 인쇄 된 출력이 없습니다. 오류가 발견되었는지 여부 (및 기타 성능 정보) 만 표시됩니다. 초보자이기 때문에 'spin -a…'를 사용하여 spin을 호출 할 때 'SPIN 확인을 실행'한 다음 컴파일 된 코드를 실행합니다.

출력을 보는 방법에는 두 가지가 있습니다. 먼저를 사용하여 시뮬레이션 모드에서 SPIN을 사용 spin hello.pml합니다. 예를 들면 :

$ cat >hello.pml <<EOF
> init { printf ("hello world\n"); }
> EOF
$ spin hello.pml 
      hello world
1 process created

둘째, 확인 모드에서 SPIN을 사용하되 프로그램에 오류를 삽입합니다. 오류가 발생한 후 추적 파일을 검사하십시오. 예를 들면 :

$ cat >hello.pml <<EOF
> init { printf ("hello world\n"); assert (0); }
> EOF
$ spin -a hello.pml
$ gcc -o hello pan.c
$ ./hello
hint: this search is more efficient if pan.c is compiled -DSAFETY
pan:1: assertion violated 0 (at depth 0)
pan: wrote hello.pml.trail
...
State-vector 12 byte, depth reached 0, errors: 1
...
pan: elapsed time 0 seconds
$ spin -p -t hello.pml
using statement merging
      hello world
  1:    proc  0 (:init:) hello.pml:1 (state 1)  [printf('hello world\\n')]
spin: hello.pml:1, Error: assertion violated
spin: text of failed assertion: assert(0)
  1:    proc  0 (:init:) hello.pml:1 (state 2)  [assert(0)]
spin: trail ends after 1 steps
#processes: 1
  1:    proc  0 (:init:) hello.pml:1 (state 3) <valid end state>
1 process created

위의 'hello world'는 이후에 찾을 수 있습니다. spin -p -t hello.pml

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

printf 및 대화 상자를 사용하여 출력 형식을 지정하는 방법은 무엇입니까?

분류에서Dev

dynlm 및 lm을 사용한 다양한 회귀 출력

분류에서Dev

strncpy 및 strncat을 사용한 이상한 출력

분류에서Dev

C ++에서 scanf () 및 printf ()를 사용하는 예기치 않은 출력

분류에서Dev

C : 정확히 동일한 입력을 사용할 때 printf와 vfprintf의 출력 차이

분류에서Dev

SPARQL 및 SPIN을 사용한 RDFising 데이터

분류에서Dev

printf를 사용하여 변수 출력

분류에서Dev

동일한 입력 및 출력 파일을 사용하여 ant xslt 작업 사용

분류에서Dev

Gazpacho 및 Pandas를 사용하여 긁을 때 출력이 제한됨

분류에서Dev

json 및 underscore를 사용할 때 템플릿을 통해 출력 제한

분류에서Dev

Pandas 및 다양한 입력 및 출력 유형을 사용하여 Python에서 새 열 계산

분류에서Dev

배열 입력 및 배열 출력을 사용하여 PostgreSQL 용 간단한 C 함수 생성

분류에서Dev

fscanf 및 printf를 사용하는 C는 이상한 값을 반환합니까?

분류에서Dev

C : 출력 (printf)에 대한 단순 복사 입력 (getchar)은 추가 행을 반환합니다.

분류에서Dev

입력 및 출력용 QTextEdit

분류에서Dev

EXCEL-동일한 셀에 수식 출력 및 사용자 입력을 갖는 방법은 무엇입니까?

분류에서Dev

printf 출력을 포맷하는 방법

분류에서Dev

입력 및 출력을 이미지로 사용하는 CNN 용 ImageDataGenerator ()

분류에서Dev

scanf 및 printf에서 % 사용

분류에서Dev

Promela에서 LTL을 Automato로 변환하는 방법-SPIN?

분류에서Dev

"fputs"와 "printf"사이의 출력 변화

분류에서Dev

PHP 및 mysql을 사용하여 형식화 된 출력

분류에서Dev

SceneKit을 사용하여 모델 수정 및 결과 출력

분류에서Dev

파일을 사용하여 배열 및 테이블 출력

분류에서Dev

printf ()에 대한 gcc 어셈블리 출력을 이해하려고합니다.

분류에서Dev

`printf ()`에서 문자열 출력을 변경하기위한 변수-C 언어

분류에서Dev

그룹에 사용자 이름을 추가 한 후 그룹 및 그룹 USERNAME에 대한 다른 출력

분류에서Dev

다중 입력 및 출력을위한 오디오 솔루션

분류에서Dev

배열 및 출력을 사용하는 특정 출력이있는 이름 및 연령 애플리케이션

Related 관련 기사

  1. 1

    printf 및 대화 상자를 사용하여 출력 형식을 지정하는 방법은 무엇입니까?

  2. 2

    dynlm 및 lm을 사용한 다양한 회귀 출력

  3. 3

    strncpy 및 strncat을 사용한 이상한 출력

  4. 4

    C ++에서 scanf () 및 printf ()를 사용하는 예기치 않은 출력

  5. 5

    C : 정확히 동일한 입력을 사용할 때 printf와 vfprintf의 출력 차이

  6. 6

    SPARQL 및 SPIN을 사용한 RDFising 데이터

  7. 7

    printf를 사용하여 변수 출력

  8. 8

    동일한 입력 및 출력 파일을 사용하여 ant xslt 작업 사용

  9. 9

    Gazpacho 및 Pandas를 사용하여 긁을 때 출력이 제한됨

  10. 10

    json 및 underscore를 사용할 때 템플릿을 통해 출력 제한

  11. 11

    Pandas 및 다양한 입력 및 출력 유형을 사용하여 Python에서 새 열 계산

  12. 12

    배열 입력 및 배열 출력을 사용하여 PostgreSQL 용 간단한 C 함수 생성

  13. 13

    fscanf 및 printf를 사용하는 C는 이상한 값을 반환합니까?

  14. 14

    C : 출력 (printf)에 대한 단순 복사 입력 (getchar)은 추가 행을 반환합니다.

  15. 15

    입력 및 출력용 QTextEdit

  16. 16

    EXCEL-동일한 셀에 수식 출력 및 사용자 입력을 갖는 방법은 무엇입니까?

  17. 17

    printf 출력을 포맷하는 방법

  18. 18

    입력 및 출력을 이미지로 사용하는 CNN 용 ImageDataGenerator ()

  19. 19

    scanf 및 printf에서 % 사용

  20. 20

    Promela에서 LTL을 Automato로 변환하는 방법-SPIN?

  21. 21

    "fputs"와 "printf"사이의 출력 변화

  22. 22

    PHP 및 mysql을 사용하여 형식화 된 출력

  23. 23

    SceneKit을 사용하여 모델 수정 및 결과 출력

  24. 24

    파일을 사용하여 배열 및 테이블 출력

  25. 25

    printf ()에 대한 gcc 어셈블리 출력을 이해하려고합니다.

  26. 26

    `printf ()`에서 문자열 출력을 변경하기위한 변수-C 언어

  27. 27

    그룹에 사용자 이름을 추가 한 후 그룹 및 그룹 USERNAME에 대한 다른 출력

  28. 28

    다중 입력 및 출력을위한 오디오 솔루션

  29. 29

    배열 및 출력을 사용하는 특정 출력이있는 이름 및 연령 애플리케이션

뜨겁다태그

보관