def this_kernel_version(): uts = syms.get_value("system_utsname") if not uts: uts = syms.get_value("init_uts_ns") if uts: uts = uts['name'] if not uts: raise CrashTableException("Can't locate utsname") return LinuxKernelVersion(uts['release'].string())
#!/usr/bin/env python # vim: sw=4 ts=4 et si: import gdb from crash.types.task import LinuxKernelTask, upid_type, upid_to_pid from crash.types.task import pid_to_task, task_type from crash.types.list import hlist_for_each_entry from crash.types.types import pointer_address from syms import get_value pid_hash = get_value("pid_hash") pidhash_shift = get_value('pidhash_shift') pidhash_size = 1 << pidhash_shift init_task = LinuxKernelTask(get_value("init_task")) def upids_from_bucket(bucket): hlist = pid_hash[bucket] for pid in hlist_for_each_entry(hlist, upid_type, 'pid_chain'): yield pid def upids(): for bucket in range(0, pidhash_size): for upid in upids_from_bucket(bucket): yield upid def pids(): for upid in upids(): yield upid_to_pid(upid)
#!/usr/bin/env python # vim: sw=4 ts=4 et si: import gdb from crash.types.task import LinuxKernelTask, upid_type, upid_to_pid from crash.types.task import pid_to_task, task_type from crash.types.list import hlist_for_each_entry from crash.types.types import pointer_address from syms import get_value pid_hash = get_value("pid_hash") pidhash_shift = get_value('pidhash_shift') pidhash_size = 1 << pidhash_shift init_task = LinuxKernelTask(get_value("init_task")) def upids_from_bucket(bucket): hlist = pid_hash[bucket] for pid in hlist_for_each_entry(hlist, upid_type, 'pid_chain'): yield pid def upids(): for bucket in range(0, pidhash_size): for upid in upids_from_bucket(bucket): yield upid def pids():