diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2024-05-16 12:55:01 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2024-05-16 15:09:48 -0400 |
commit | 108f22e4ebf7cdb4909f468c4bd83dbe40ccd30b (patch) | |
tree | 6d210d3a3507e6bef331046924cc06fbbe15e6b2 /gdb/nat | |
parent | 89457440e4a4b71b1fe60ed3e034c814bf8eb6b7 (diff) | |
download | gdb-108f22e4ebf7cdb4909f468c4bd83dbe40ccd30b.zip gdb-108f22e4ebf7cdb4909f468c4bd83dbe40ccd30b.tar.gz gdb-108f22e4ebf7cdb4909f468c4bd83dbe40ccd30b.tar.bz2 |
gdb: define type aliases for `fork_inferior()` callbacks
The `fork_inferior()` function accepts multiple callbacks, making its
signature a bit hard to read. Define some type aliases to make it a bit
clearer. Use function view for all, while at it.
Change-Id: Ide8d1fa533d0c5eaf3249860f8c0d339baa09bce
Approved-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdb/nat')
-rw-r--r-- | gdb/nat/fork-inferior.c | 15 | ||||
-rw-r--r-- | gdb/nat/fork-inferior.h | 18 |
2 files changed, 18 insertions, 15 deletions
diff --git a/gdb/nat/fork-inferior.c b/gdb/nat/fork-inferior.c index 4378177..c1082eb 100644 --- a/gdb/nat/fork-inferior.c +++ b/gdb/nat/fork-inferior.c @@ -266,12 +266,9 @@ execv_argv::init_for_shell (const char *exec_file, pid_t fork_inferior (const char *exec_file_arg, const std::string &allargs, - char **env, void (*traceme_fun) (), - gdb::function_view<void (int)> init_trace_fun, - void (*pre_trace_fun) (), - const char *shell_file_arg, - void (*exec_fun)(const char *file, char * const *argv, - char * const *env)) + char **env, traceme_ftype traceme_fun, + init_trace_ftype init_trace_fun, pre_trace_ftype pre_trace_fun, + const char *shell_file_arg, exec_ftype exec_fun) { pid_t pid; /* Set debug_fork then attach to the child while it sleeps, to debug. */ @@ -337,7 +334,7 @@ fork_inferior (const char *exec_file_arg, const std::string &allargs, happen to prepare to handle the child we're about fork, do it now... */ if (pre_trace_fun != NULL) - (*pre_trace_fun) (); + pre_trace_fun (); /* Create the child process. Since the child process is going to exec(3) shortly afterwards, try to reduce the overhead by @@ -389,7 +386,7 @@ fork_inferior (const char *exec_file_arg, const std::string &allargs, for the inferior. */ /* "Trace me, Dr. Memory!" */ - (*traceme_fun) (); + traceme_fun (); /* The call above set this process (the "child") as debuggable by the original gdb process (the "parent"). Since processes @@ -412,7 +409,7 @@ fork_inferior (const char *exec_file_arg, const std::string &allargs, char **argv = child_argv.argv (); if (exec_fun != NULL) - (*exec_fun) (argv[0], &argv[0], env); + exec_fun (argv[0], &argv[0], env); else execvp (argv[0], &argv[0]); diff --git a/gdb/nat/fork-inferior.h b/gdb/nat/fork-inferior.h index a609f68..f3e2f54 100644 --- a/gdb/nat/fork-inferior.h +++ b/gdb/nat/fork-inferior.h @@ -31,6 +31,13 @@ struct process_stratum_target; implementations. */ #define START_INFERIOR_TRAPS_EXPECTED 1 +using traceme_ftype = gdb::function_view<void ()>; +using init_trace_ftype = gdb::function_view<void (int /* pid */)>; +using pre_trace_ftype = gdb::function_view<void ()>; +using exec_ftype = gdb::function_view<void (const char * /* file */, + char * const * /* argv */, + char * const * /* env */)>; + /* Start an inferior Unix child process and sets inferior_ptid to its pid. EXEC_FILE is the file to run. ALLARGS is a string containing the arguments to the program. ENV is the environment vector to @@ -42,13 +49,12 @@ struct process_stratum_target; made static to ensure that they survive the vfork call. */ extern pid_t fork_inferior (const char *exec_file_arg, const std::string &allargs, - char **env, void (*traceme_fun) (), - gdb::function_view<void (int)> init_trace_fun, - void (*pre_trace_fun) (), + char **env, + traceme_ftype traceme_fun, + init_trace_ftype init_trace_fun, + pre_trace_ftype pre_trace_fun, const char *shell_file_arg, - void (*exec_fun) (const char *file, - char * const *argv, - char * const *env)); + exec_ftype exec_fun); /* Accept NTRAPS traps from the inferior. |