μλ νμλκΉ,
μ΅μ λ²μ© 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
νμλ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
κ°μ¬ν©λλ€.
λ¦μ΄μ μ£μ‘ν©λλ€. μ§λ¬Έμ΄ μμ΅λλ€. git bisectμμ e5b7a25λ₯Ό μ°Ύμμ΅λκΉ? μλλ©΄?
μ΄ λ²κ·Έλ @pragmaware κ° λ΄κ° μμ νλλ‘ μμ²ν κΈ°λ₯μ μμ±μ λν΄ μμ
ν λ λμ
λ μ μλ€κ³ μκ°ν©λλ€. μ΄κ²κ³Ό #1241μ κ°μ λ²κ·Έλ₯Ό λ°κ²¬ν μ μμ΅λλ€.
μ΄κ²μ λ²κ·Έμ΄μ§λ§ μμ νκΈ° μ΄λ €μΈ μ μμ΅λλ€.
μλ§λ νμλ μ΄λ° μ’ λ₯μ μΌμ λν΄ ν΄λ¦¬μ€ν±μ κ°μ§ μ μμ§λ§ κΈμ, λλ @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κ³Ό κ΄λ ¨μ΄ μμ μ μμ΅λλ€.
ν , μ΄ μΌμ΄μ€λ λ€λ₯Έ μΌμ΄μ€λ₯Ό κΉ¨λ¨λ¦¬μ§ μκ³ μ리νκΈ°κ° μλΉν μ΄λ ΅μ΅λλ€.
μ¦, μ΄μ λ²μ μ νμκ° μ΄κ²μ ν¬μ°©νμ§λ§ λ€λ₯Έ κ³³μμ μ€λ¨λμμ΅λλ€....