Ctags: httpd(νšŒκ·€)μ—μ„œ 기호λ₯Ό κ°μ§€ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2016λ…„ 12μ›” 13일  Β·  8μ½”λ©˜νŠΈ  Β·  좜처: universal-ctags/ctags

μ•ˆλ…•ν•˜μ‹­λ‹ˆκΉŒ,

μ΅œμ‹  λ²”μš© ctags(249c3c0c2a974ab03f7c307684563239096399a8)λŠ” 이 μ½”λ“œ(httpd 2.4.18의 include/ap_mpm.h)μ—μ„œ ap_os_create_privileged_process 기호λ₯Ό κ°μ§€ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€.

AP_DECLARE(apr_status_t) ap_os_create_privileged_process(
    const request_rec *r,
    apr_proc_t *newproc,
    const char *progname,
    const char * const *args,
    const char * const *env,
    apr_procattr_t *attr,
    apr_pool_t *p);

이 λͺ…령은 빈 좜λ ₯을 λ°˜ν™˜ν–ˆμŠ΅λ‹ˆλ‹€.

ctags -x --C-kinds=fpvx --languages=+C --language-force=C include/ap_mpm.h|grep ap_os_create_privileged_process

κ·ΈλŸ¬λ‚˜ 2016λ…„ 5μ›” 7일의 λ²”μš© ctag μ—λ””μ…˜(e5b7a2508db6e1374ea78a300cc9b45f4b26b02a)μ—μ„œ μ˜¬λ°”λ₯΄κ²Œ κ°μ§€ν–ˆμŠ΅λ‹ˆλ‹€.

ctags -x --C-kinds=fpvx --languages=+C --language-force=C include/ap_mpm.h|grep ap_os_create_privileged_process
ap_os_create_privileged_process prototype   107 include/ap_mpm.h AP_DECLARE(apr_status_t) ap_os_create_privileged_process(

-I μ˜΅μ…˜μœΌλ‘œλ„ 이 문제λ₯Ό ν•΄κ²°ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 이 경우 OldC νŒŒμ„œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€.

λͺ¨λ“  8 λŒ“κΈ€

λŠ¦μ–΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€. 질문이 μžˆμŠ΅λ‹ˆλ‹€. git bisectμ—μ„œ e5b7a25λ₯Ό μ°Ύμ•˜μŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄?
이 λ²„κ·ΈλŠ” @pragmaware κ°€ λ‚΄κ°€ μˆ˜μ •ν•˜λ„λ‘ μš”μ²­ν•œ κΈ°λŠ₯의 속성에 λŒ€ν•΄ μž‘μ—…ν•  λ•Œ λ„μž…λ  수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. 이것과 #1241은 같은 버그λ₯Ό λ°œκ²¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이것은 λ²„κ·Έμ΄μ§€λ§Œ μˆ˜μ •ν•˜κΈ° μ–΄λ €μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ§€κΈˆμ€ κ³ μΉ  μ‹œκ°„μ΄ μ—†μ§€λ§Œ 이 λ²„κ·ΈλŠ” 일상 μƒν™œμ— 영ν–₯을 λ―ΈμΉ©λ‹ˆλ‹€. μ–΄μ¨Œλ“  μ‹œκ°„μ„ 찾을 κ²ƒμž…λ‹ˆλ‹€.
μ‹œκ°„μ΄ λ‚˜λ©΄ μ €μ—κ²Œ ν• λ‹Ήν•˜κ² μŠ΅λ‹ˆλ‹€. μ΄λŠ” μ–‘μˆ˜μΈ ν•„λ“œκ°€ nil, @pragmaware κ°€ 될 λ•ŒκΉŒμ§€ 이λ₯Ό μˆ˜μ • ν•˜κΈ° μœ„ν•œ λ³€κ²½ 사항 :-P .

μ•„λ§ˆλ„ νŒŒμ„œλŠ” 이런 μ’…λ₯˜μ˜ 일에 λŒ€ν•΄ νœ΄λ¦¬μŠ€ν‹±μ„ κ°€μ§ˆ 수 μžˆμ§€λ§Œ κΈ€μŽ„, λ‚˜λŠ” @pragmaware κ°€ λ§Žμ€ 것을 κΉ¨λœ¨λ¦¬μ§€ μ•Šκ³  κ°€μΉ˜κ°€ μžˆλŠ”μ§€/μ‹€ν–‰

κ·ΈλŸ¬λ‚˜ 그의 μƒˆλ‘œμš΄ μ „μ²˜λ¦¬κΈ°λ₯Ό μ‚¬μš©ν•˜λ©΄ -D 'AP_DECLARE(t)=t' 문제λ₯Ό μ‰½κ²Œ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

$ ./ctags -x --C-kinds=+p -D 'AP_DECLARE(t)=t' /tmp/1242.c
ap_os_create_privileged_process prototype     1 /tmp/1242.c      AP_DECLARE(apr_status_t) ap_os_create_privileged_process(

예, νŒŒμ„œμ˜ κ·Έ 뢀뢄은 μ²˜μŒμ—λŠ” λ„ˆλ¬΄ "ν—ˆμš©μ "μ΄μ—ˆκ³ , κ·Έ λ‹€μŒμ—λŠ” λ„ˆλ¬΄ μ—„κ²©ν•˜κ²Œ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. 쀑간에 방법을 μ°Ύμ•„μ•Ό ν•  것 κ°™μŠ΅λ‹ˆλ‹€. μ§€κΈˆ μˆ˜μ •ν•˜λ €κ³  ν•©λ‹ˆλ‹€.

@pragmaware , κ°μ‚¬ν•©λ‹ˆλ‹€.

http://docs.ctags.io/en/latest/parser-cxx.html 에 λŒ€ν•œ κ°•λ ₯ν•œ -D μ˜΅μ…˜μ— λŒ€ν•΄ 글을 쓰도둝 μš”μ²­ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?
μ‚¬μš©μžμ—κ²Œ -D μ˜΅μ…˜μ„ μ•Œλ¦° 것은 이번이 처음이 μ•„λ‹™λ‹ˆλ‹€.

#1245λ₯Ό 톡해 폐쇄

Ctags 6e839be606cbc750e6e6a7e6d16fe375adbef5caλŠ” 이 λ…λ¦½ν˜• 기호λ₯Ό 잘 κ°μ§€ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 초기 헀더 νŒŒμΌμ—λŠ” 이 κΈ°ν˜Έμ— λŒ€ν•œ λ‹€μŒ μ„œλ¬Έμ΄ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

AP_DECLARE_HOOK(int, mpm, (apr_pool_t *pconf, apr_pool_t *plog, server_rec *server_conf))

/**
 * comment ...
 */

AP_DECLARE(apr_status_t) ap_os_create_privileged_process(
    const request_rec *r,
    apr_proc_t *newproc,
    const char *progname,
    const char * const *args,
    const char * const *env,
    apr_procattr_t *attr,
    apr_pool_t *p);

그리고 μ–΄λ–€ 이유둜 ctagsλŠ” 이 경우 그것을 κ°μ§€ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€. 이 λ¬Έμ œλŠ” #1251κ³Ό 관련이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

흠, 이 μΌ€μ΄μŠ€λŠ” λ‹€λ₯Έ μΌ€μ΄μŠ€λ₯Ό κΉ¨λœ¨λ¦¬μ§€ μ•Šκ³  μˆ˜λ¦¬ν•˜κΈ°κ°€ μƒλ‹Ήνžˆ μ–΄λ ΅μŠ΅λ‹ˆλ‹€.
즉, 이전 λ²„μ „μ˜ νŒŒμ„œκ°€ 이것을 ν¬μ°©ν–ˆμ§€λ§Œ λ‹€λ₯Έ κ³³μ—μ„œ μ€‘λ‹¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€....

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰