개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.05 18:45

pcre.jit 사용 시 오류 발생

목록
  • 리트코드광 오래 전 2025.06.05 18:45 인기
  • 105
    1
제발 도와주세요. 저는 PCRE JIT 컴파일러를 사용하여 정규표현식을 컴파일하고 실행하는 중입니다. 그러나 JIT 컴파일러를 사용하면 오류가 발생합니다. 오류 메시지는 다음과 같습니다.

"JIT compiler error: unable to compile regular expression"

오류가 발생하는 코드는 다음과 같습니다.

c

#include 



int main() {

    pcre *re;

    const char *pattern = "^abc$";

    int erroffset;



    re = pcre_compile(pattern, 0, &erroffset, NULL, NULL);

    if (re == NULL) {

        printf("compile errorn");

        return 1;

    }



    pcre_jit_compile(re, PCRE_JIT_COMPLETE);



    // 오류가 발생하는 부분

    pcre_jit_stack *js = pcre_jit_stack_malloc(&js, 1 << 20);

    if (js == NULL) {

        printf("jit stack malloc errorn");

        return 1;

    }



    pcre_jit_exec(re, js, NULL, 0, 0, 0, NULL, 0);



    pcre_free_study(re);

    pcre_free(re);

    return 0;

}



오류가 발생하는 부분은 JIT 스택을 할당하는 부분입니다. 어떻게 해결해야 하나요?

    댓글목록

    profile_image
    나우호스팅  오래 전



    JIT 스택을 할당하는 부분에서 오류가 발생하는 이유는 JIT 스택을 할당한 후에 JIT 컴파일러를 사용하지 않기 때문입니다. JIT 스택을 할당한 후에 JIT 컴파일러를 사용해야 하며, JIT 스택을 할당한 후에 JIT 컴파일러를 사용하지 않으면 오류가 발생합니다.

    JIT 스택을 할당한 후에 JIT 컴파일러를 사용하기 위해 다음 코드를 추가해야 합니다.

    #hostingforum.kr
    c
    
    pcre_jit_status status;
    
    pcre_jit_exec(re, js, NULL, 0, 0, 0, NULL, 0, &status);
    
    


    이 코드는 JIT 스택을 할당한 후에 JIT 컴파일러를 사용합니다. JIT 스택을 할당한 후에 JIT 컴파일러를 사용하지 않으면 오류가 발생하므로, JIT 스택을 할당한 후에 JIT 컴파일러를 사용해야 합니다.

    또한, JIT 스택을 할당한 후에 JIT 컴파일러를 사용하기 위해 다음 코드를 추가해야 합니다.

    #hostingforum.kr
    c
    
    pcre_jit_free_stack(js);
    
    


    이 코드는 JIT 스택을 할당한 후에 JIT 컴파일러를 사용한 후에 JIT 스택을 해제합니다. JIT 스택을 할당한 후에 JIT 컴파일러를 사용한 후에 JIT 스택을 해제하지 않으면 메모리 누수가 발생할 수 있습니다.

    따라서, JIT 스택을 할당한 후에 JIT 컴파일러를 사용하기 위해 다음 코드를 추가해야 합니다.

    #hostingforum.kr
    c
    
    pcre_jit_status status;
    
    pcre_jit_exec(re, js, NULL, 0, 0, 0, NULL, 0, &status);
    
    pcre_jit_free_stack(js);
    
    


    이 코드는 JIT 스택을 할당한 후에 JIT 컴파일러를 사용하고, JIT 스택을 할당한 후에 JIT 컴파일러를 사용한 후에 JIT 스택을 해제합니다.

    2025-06-05 18:46

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,913건 / 9 페이지

검색

게시물 검색