INNER CODE UNIT · Go

debuggerNamespacesSpec

iximiuz/cdebug · cmd/exec/exec_containerd.go:225

func debuggerNamespacesSpec(
	targetPID uint32,
	targetNamespaces []specs.LinuxNamespace,
) oci.SpecOpts {
	debuggerNamespaces := map[specs.LinuxNamespaceType]oci.SpecOpts{
		specs.NetworkNamespace: oci.WithHostNamespace(specs.NetworkNamespace),
		specs.PIDNamespace:     oci.WithHostNamespace(specs.PIDNamespace),
		specs.IPCNamespace:     oci.WithHostNamespace(specs.IPCNamespace),
		specs.UTSNamespace:     oci.WithHostNamespace(specs.UTSNamespace),
	}

	for _, ns := range targetNamespaces {
		if _, ok := debuggerNamespaces[ns.Type]; ok {
			debuggerNamespaces[ns.Type] = oci.WithLinuxNamespace(specs.LinuxNamespace{
				Type: ns.Type,
				Path: fmt.Sprintf("/proc/%d/ns/%s", targetPID, namespaceTypeMap[ns.Type]),
			})
		}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…