[PATCH] Fix WAIT_FOR_DEBUGGER for container tests.
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Tue Oct 3 18:12:10 GMT 2023
On 28/09/23 07:50, Stefan Liebler wrote:
> For container tests, gdb needs to set the sysroot to the corresponding
> testroot.root directory. The assumption was that PIDs < 3 means that
> we are running within a container.
>
> Starting with commit 2fe64148a81f0d78050c302f34a6853d21f7cae4
> "Allow for unpriviledged nested containers", the default is to use
> the PID namespace of the parent. Thus support_test_main.c does not
> recognize our container anymore.
>
> This patch now assumes that we are running inside a container if
> test-container.c has set PID_OUTSIDE_CONTAINER and always uses this
> PID independent of having a new PID namespace or not.
Do you have a scenario where debugglibc is failing to attach to a container
test? I am trying to see if something it broken, but it does seems to be
working.
> ---
> support/support_test_main.c | 14 ++++++--------
> 1 file changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/support/support_test_main.c b/support/support_test_main.c
> index c20c19e774..f19fce5644 100644
> --- a/support/support_test_main.c
> +++ b/support/support_test_main.c
> @@ -195,16 +195,14 @@ run_test_function (int argc, char **argv, const struct test_config *config)
> char *gdb_script_name;
> int inside_container = 0;
>
> - mypid = getpid();
> - if (mypid < 3)
> + const char *outside_pid = getenv("PID_OUTSIDE_CONTAINER");
> + if (outside_pid)
> {
> - const char *outside_pid = getenv("PID_OUTSIDE_CONTAINER");
> - if (outside_pid)
> - {
> - mypid = atoi (outside_pid);
> - inside_container = 1;
> - }
> + mypid = atoi (outside_pid);
> + inside_container = 1;
> }
> + else
> + mypid = getpid();
>
> gdb_script_name = (char *) xmalloc (strlen (argv[0]) + strlen (".gdb") + 1);
> sprintf (gdb_script_name, "%s.gdb", argv[0]);
More information about the Libc-alpha
mailing list