이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 명령 creduce입니다.
프로그램:
이름
creduce - C 및 C++ 프로그램 감속기
기술
크리듀 2.5.0(알 수 없음) -- C 및 C++ 프로그램 감속기
C-Reduce는 "재미 테스트"와 줄일 하나 이상의 파일이 필요합니다.
쓸 수 있습니다. 흥미도 테스트는 실행 가능한 프로그램(보통 쉘 스크립트)입니다.
부분적으로 축소된 파일이 흥미로운 경우(추가 축소 후보) 0을 반환합니다.
부분적으로 축소된 파일이 흥미롭지 않은 경우 XNUMX이 아닌 값을 반환합니다.
추가 감소 -- 관심 없는 파일은 모두 버려집니다.)
C-Reduce는 새로운 임시 디렉토리에서 흥미도 테스트를 실행합니다.
부분적으로 축소된 파일. 따라서 흥미도 테스트가 부분적으로 조사할 때
축소된 파일의 경우 현재 작업 디렉토리에 대한 상대 경로를 사용하여 수행해야 합니다. 에
한편, 흥미도 테스트가 축소되지 않는 파일을 참조하는 경우,
이 작업은 절대 경로를 사용하여 수행해야 합니다.
흥미도 테스트는 명령줄 인수를 기대하지 않아야 합니다. 그것은해야한다
결정적이며 호출하는 하위 명령에 리소스 제한을 적용할 수 있습니다.
(예: ulimit 사용). 특히 C-Reduce는 때때로 무한대를 도입하는 것으로 알려져 있습니다.
축소되는 프로그램으로 루프를 돌립니다. 따라서 흥미도 테스트를 실행하면
컴파일된 프로그램의 경우 타임아웃 상태에서 그렇게 해야 할 것입니다.
빠른 예로서 GCC의 벡터기가 실행되면 파일이 흥미로울 것이라고 생각하는 경우
컴파일하는 동안 다음 흥미도 테스트를 사용할 수 있습니다.
GCC -w -O3 foo.c -S && grep xmm foo.s
흥미도 테스트가 작동하는지 확인하려면 다음 명령어를 실행해 보세요.
DIR=`mktemp -d` cp file_to_reduce [선택적으로 더 많은 파일을 줄일 수 있음] $DIR cd $DIR
/경로/to/interestingness_test echo $?
이로 인해 "0"이 터미널에 에코됩니다. 이것이 일어나지 않으면,
흥미도 테스트에 결함이 있으며 C-Reduce는 이를 사용할 수 없습니다.
이전에 흥미도 테스트를 작성해 본 적이 없다면 이 튜토리얼을 참조하십시오.
추가 지침:
https://embed.cs.utah.edu/creduce/using/
가능하다면 예를 들어 다음을 사용하여 생성된 사전 처리된 코드에서 C-Reduce를 실행하십시오.
GCC -E -P 파일.c
전처리된 코드를 줄일 수 없으면 전처리되지 않은 코드만 줄일 수 있습니다.
파일 또는 파일에 대한 다중 파일 축소를 수행하고 전이적 포함(또는
그들 중 일부). 첫 번째 경우에는 CREDUCE_INCLUDE_PATH를 설정해야 합니다.
포함 디렉토리의 콜론으로 구분된 목록에 대한 환경 변수
clang_delta를 사용하여 찾을 수 있습니다.
흥미도 테스트에 크로스 컴파일러와
교차 대상이 호스트와 다르면 일치하도록 CREDUCE_TARGET_TRIPLE을 설정해야 합니다.
크로스 타겟. 사전 처리되지 않은 코드로 작업하는 경우 특히 중요합니다.
CREDUCE_INCLUDE_PATH를 사용합니다.
다음 패스로 건너뛰려면 언제든지 "s"를 누르십시오(이 기능은 Perl이
모듈 Term::ReadKey는 시스템에서 사용할 수 있습니다).
제품 개요 of 옵션 :
--추가-패스
지정된 패스를 일정에 추가
--또한 흥미로운
프로세스 종료 코드(일반적으로 64-113 범위)
흥미도 테스트에 의해 반환되면 C-Reduce가
변형 [기본값: -하나]
-디버그
디버그 정보 인쇄
--다이 온 패스 버그
패스에서 치명적이지 않은 문제가 발생하면 C-Reduce를 종료합니다.
--최대 개선
C-Reduce가 수행해야 하는 단일 변환에서 가장 큰 파일 크기 개선
수락(C-Reduce 속도를 늦출 때만 유용함)
--엔
사용할 코어 수 C-Reduce는 좋은 설정을 자동으로 선택하려고 하지만
상황에 따라 선택이 너무 낮거나 높을 수 있음[기본값: 2]
--기본값 없음
빈 패스 일정으로 시작
--포기하지 않음
50000 반복 동안 진행되지 않은 패스를 포기하지 마십시오.
--살인 금지
병렬 인스턴스를 죽이는 대신 자체적으로 종료될 때까지 기다립니다.
디버깅에 유용함)
--인쇄 차이
디버깅을 위해 변환에 의해 변경된 사항 표시
--소독하다
원본 소스 파일의 세부 정보를 숨기려고 시도합니다.
-- 임시 저장
삭제하지 마세요 /tmp/creduce-x 종료 시 디렉토리
--shadap
치명적이지 않은 내부 오류에 대한 출력 억제
--건너뛰기-초기 패스
초기 패스 건너뛰기(입력이 이미 부분적으로 감소된 경우에 유용함)
--건너뛰기-키오프
"s"를 누를 때 현재 패스의 나머지 부분 건너뛰기 비활성화
--slloww
줄이기 위해 더 열심히 노력하지만 아마도 그렇게 하는 데 오랜 시간이 걸릴 것입니다.
--깔끔한 file.orig로 줄이기 위해 각 파일의 백업 복사본을 만들지 마십시오.
--타이밍
축소 진행 상황에 대한 타임스탬프 인쇄
사용법: creduce [옵션] Interestness_test file_to_reduce [선택적으로 더 많은 파일을
줄이다]
만들다 --도움 자세한 내용은
onworks.net 서비스를 사용하여 온라인에서 creduce 사용