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]),
})
}