рдирдорд╕реНрддреЗ,
рдирд╡реАрдирддрдо рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ ctags (249c3c0c2a974ab03f7c307684563239096399a8) рдЗрд╕ рдХреЛрдб рдореЗрдВ рдкреНрд░рддреАрдХ ap_os_create_privileged_process
рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рддреЗ рд╣реИрдВ (httpd 2.4.18 рд╕реЗ рд╢рд╛рдорд┐рд▓/ap_mpm.h):
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
рд╣рд╛рд▓рд╛рдВрдХрд┐, 7 рдордИ 2016 рд╕реЗ рдпреВрдирд┐рд╡рд░реНрд╕рд▓ ctags рдХреЗ рд╕рдВрд╕реНрдХрд░рдг (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
рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдзрдиреНрдпрд╡рд╛рджред
рджреЗрд░реА рдХреЗ рд▓рд┐рдП рдорд╛рдлрд╝ рдХреАрдЬрд┐рдПред рдореЗрд░рд╛ рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИред e5b7a25 git bisect рджреНрд╡рд╛рд░рд╛ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдпрд╛ рдирд╣реАрдВ?
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрдЧ рддрдм рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм
рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрдЧ рдХрд╛ рдореЗрд░реЗ рджреИрдирд┐рдХ рдЬреАрд╡рди рдкрд░ рдкреНрд░рднрд╛рд╡ рд╣реИред рдореБрдЭреЗ рд╡реИрд╕реЗ рднреА рд╕рдордп рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛ред
рдЬрдм рдореБрдЭреЗ рд╕рдордп рдорд┐рд▓реЗрдЧрд╛, рддреЛ рдореИрдВ рдЗрд╕реЗ рдореБрдЭреЗ рд╕реМрдВрдк рджреВрдВрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рддрдХ рдЕрд╕рд╛рдЗрдиреА рдлрд╝реАрд▓реНрдб рд╢реВрдиреНрдп рд╣реИ, @pragmaware , рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрджрд▓рд╛рд╡ рд╣реИ: -рдкреАред
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд░ рдХреЗ рдкрд╛рд╕ рд╣реЗрд░рд┐рд╕реНрдЯрд┐рдХреНрд╕ рд╣реЛ, рд▓реЗрдХрд┐рди рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ @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 , рдзрдиреНрдпрд╡рд╛рджред
рдХреНрдпрд╛ рдЖрдк рд╢рдХреНрддрд┐рд╢рд╛рд▓реА -D
рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ http://docs.ctags.io/en/latest/parser-cxx.html
рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдирд╣реАрдВ рд╣реИ рдЬрдм рд╣рдордиреЗ рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ -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 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИред
рд╣рдореНрдо, рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╣реИред
рдпрд╣реА рд╣реИ, рдкрд╛рд░реНрд╕рд░ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдиреЗ рдЗрд╕реЗ рдкрдХрдбрд╝рд╛ рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдЬрдЧрд╣реЛрдВ рдкрд░ рддреЛрдбрд╝ рджрд┐рдпрд╛ ....