태그 보관물: code-challenge

code-challenge

가짜 오류 메시지 숨겨야 함)해야합니다. 또한 오류는 가능한 한

컴파일러 또는 인터프리터의 구문 오류 메시지를 인쇄하는 프로그램을 작성하십시오. 오류 메시지는 코드 관리자가 오류가 위조되었음을 알기 위해 며칠이 걸릴 수 있도록 오도해야합니다. 즉, 난독 화 (의도를 숨겨야 함)해야합니다. 또한 오류는 가능한 한 정확해야하며 코드를 올바르게 참조해야합니다.

호환되는 언어의 경우 코드 관리자가 compile program.p && ./program명령 줄에서 프로그램을 컴파일하고 실행 한다고 가정합니다. 즉, 출력이 컴파일러 또는 프로그램 자체에서 나온 것인지 구별 할 수 없습니다. 또한 코드 관리자가 구문 오류 메시지를 설정한다고 가정하십시오.

참고로 다음은 내가 만든 예입니다. https://gist.github.com/359604

DATA섹션은 오류 메시지 문자열을 인코딩하며 해시 %abcdef는 디코드 테이블입니다. 오류가 백 슬래시에 대한 참조를 인쇄하면 코드 관리자가 백 슬래시를 계산하려고합니다.

출품작은 다음에 의해 채점됩니다.

  • 코드에는 명백한 의도가 있습니다 /6
  • 코드는 오류를 정확하게 재현합니다 /16
    (포인트는 16으로 시작하고 각 부정확성에 해당하는 요소로 나눕니다)
    • 올바른 대문자 사용 : 4
    • 올바른 줄 번호와 열 번호 : 4
    • 올바른 표현 : 2 개의 잘못된 단어마다
  • 참조 된 줄 번호는 코드 관리자를 오도합니다 /3

예를 들어

./pythontest1.py: line 7: syntax error near token `('
./pythontest1.py: line 7: `   x=input("Enter a number:") #Number input'

“토큰”전에 “예기치 않은”누락에 대한 정확성이 8 (16/2)이되면 일반적인 Python 인터프리터

./pythontest1.py: line 7: syntax error near unexpected token `('
./pythontest1.py: line 7: `   x=input("Enter a number:") #Number input'

“코드가 오류를 올바르게 재생 함”이 1 미만인 경우 참가 자격이 박탈됩니다.

동점 인 경우 추가 등급을 매길 것입니다.



답변

파이썬

import sys,traceback
try:
  f=open(sys.argv[0])
  print eval(f.readline())
except Exception, e:
  traceback.print_exc(0)

이것은 명령 행에서 파일 이름을 가져 와서 첫 번째 행을 평가 한 후 결과를 인쇄하는 프로그램입니다. 2 개의 버그가 있습니다. 주요 버그는 sys.argv[1], not을 사용해야한다는 sys.argv[0]것이므로 첫 번째 인수로 명명 된 파일의 내용이 아니라 프로그램 자체를 평가하게됩니다. 두 번째 버그는 print_exc스택에서 가장 깊은 프레임 만 인쇄한다는 주장으로 오류가에서 발생했다는 사실을 숨기고 있다는 것입니다 eval. 결과적으로 다음과 같은 오류가 발생합니다.

$ python fake_error.py twelve
Traceback (most recent call last):
  File "<string>", line 1
     import sys,traceback
          ^
 SyntaxError: invalid syntax

이것은 프로그램의 첫 번째 줄에 구문 오류가있는 것처럼 보입니다. 파일이 <string>아닌 fake_error.py, 그렇지는 않지만 , 그렇지 않으면 철자가 import틀린 경우와 구별 할 수 없습니다 .

두 가지 오류는 우연히 발생할 수 있다는 점에서 다소 “중복”입니다.


답변

실용적인 농담을 상기시킵니다.

$ ls -l
$ cat readme.txt
cat: readme.txt: No such file or directory
$ echo 'cat: readme.txt: No such file or directory' >readme.txt
$ ls -l
total 8
-rw-r--r--  1 florian  staff  43 Mar 16 09:52 readme.txt
$ cat readme.txt
cat: readme.txt: No such file or directory
$

답변

BrainF ***

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>++++++++++[<+++++++++++<++++++++++<++++++++++<+++++++++++<+++++++++++<+++<+++++++++<+++<++++++++++<+++++++++++<++++++++++<+++++++++++<++++++++++<+++++++++++<+++++++++++<+++<+++++++++++<+++++++++<+++<++++++++++<+++++++++++<+++++++++++<++++++++++<++++++++++<+++++++++<+++<++++++++++<++++++++++<+++++++++++<+++++++++<++++++++++<+++++++++++<+++++++++++<+++++++++<+++<+++++++++++<++++++++++<++++++++++<+++++++++++<+++++++++++<+++<+++++++++<+++<++++++++++<+++++++++++<++++++++++<+++++++++++<+++++++++++<++++++++++<+++++++++<+++<+++++<+++++++++++<+++++++++++<+++++++++++<+++++++++++<++++++++++<+++<++++++++++++<+++++++++<+++++++++++<+++++++++++<++++++++++++<++++++++<+++<+++<++++<++++<++++<+++++++>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>-]<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<.>++.>++.>++.>+++.>++.>+++.>+.>.>++++++.>+++++++.>.>++.>+.>++++.>++++.>+.>++++.>++++++++.>++.>+++++++++.>++++++++.>+.>+++++.>+++++.>.>+++.>++.>+++.>++.>++++++.>+.>+++++++.>+.>.>++.>+++++++.>++.>++.>+.>+++++++.>++++.>+.>.>++.>++++++++.>+.>++.>+.>++++.>+.>++.>+++++++.>.>++.>+.>++.>+.>.>+++++.>.>+++.>++.>+.>++.>++++++.>+.>+++++++.>+.>.>

이전에 사용한 특정 컴파일러를 찾을 수 없지만 정확한 오류 메시지임을 보증합니다.


답변

자바

throw new Error();

실제로 처리되지 않은 예외 (예에서와 같이)를 발생 시키거나 오류 메시지를 시뮬레이션해야하는지 알 수 없었습니다. 이 경우 작동합니다.

printf("FATAL ERROR #0xBAD\nProgram execution stopped\n\nIn line 123, character 321, of file 'buggy.c'");

(이것이 stdio.h#include 라고 가정합니다 )


답변

게임 메이커 언어

show_error("Error: Undefined variable a##Line 1, character 4, of event Create in obj_controller",0)

답변

액션 스크립트 3

trace("TypeError: Error #1009: Cannot access a property or method of a null object reference.");

답변