OpenMP package

Capture Module

class mcgdb.model.task.environment.openmp.capture.gomp.FrameFilter[source]

Bases: object

filter(frames)[source]
class mcgdb.model.task.environment.openmp.capture.gomp.RenamedFrame(parent)[source]

Bases: mcgdb.capture.FrameStripperDecorator

address()[source]
filename()[source]
frame_args()[source]
frame_locals()[source]
function()[source]
line()[source]
mcgdb.model.task.environment.openmp.capture.gomp.activate()[source]
mcgdb.model.task.environment.openmp.capture.iomp.activate()[source]

Representation Module

class mcgdb.model.task.environment.openmp.representation.Barrier(*args, **kws)[source]

Bases: mcgdb.model.task.environment.openmp.representation.Job, mcgdb.toolbox.aspect.Tracker

completed()[source]
dict_ = {}
static get_parallel_barrier(worker, reach)[source]
last_number = 0
leave_barrier(worker)[source]
list_ = []
reach_barrier(worker, location)[source]
stop_all_after
threads_blocked_at = {}
class mcgdb.model.task.environment.openmp.representation.CriticalJob(*args, **kws)[source]

Bases: mcgdb.model.task.environment.openmp.representation.Job

completed()[source]
dict_ = {}
entered(worker)[source]
static get_parallel_critical_zone(worker, pc=None, depth=-1, no_new=False)[source]
last_number = 0
left(worker)[source]
list_ = []
try_enter(worker)[source]
class mcgdb.model.task.environment.openmp.representation.DebuggerBarrier(zone, all_workers, workers=[])[source]

Bases: object

arrived(worker)[source]
capture__release_barrier = None
capture__set_barrier = None
completed()[source]
is_available = False
release(cb)[source]
class mcgdb.model.task.environment.openmp.representation.Dependence(*args, **kws)[source]

Bases: mcgdb.toolbox.aspect.Tracker

add_reader(task, addr=None)[source]
add_writer(task, addr=None)[source]
addr_to_dep = {}
static get_dependency(address)[source]
static get_dependency_inout(address, task)[source]
get_task_inout(task, as_reader=False, as_writer=False)[source]
last_number = 0
set_name(symb, offset)[source]
set_task_inout_ready(task, as_reader=False, as_writer=False, val=None)[source]
class mcgdb.model.task.environment.openmp.representation.Init[source]

Bases: object

after_init_cb = None
break_after_init = False
class mcgdb.model.task.environment.openmp.representation.Job(*args, **kws)[source]

Bases: mcgdb.toolbox.aspect.Tracker

dict_ = {}
classmethod init_dict(key, self)

Add the current object to its class dictionnary (in __init__).

Parameters:
  • key -- Unique id of this object instance.
  • self -- Object instance put in the dict.
classmethod key_to_value(key)

Get object identified with key key.

Parameters:key -- key to lookup.
last_number = 0
list_ = []
say(what)[source]
class mcgdb.model.task.environment.openmp.representation.ParallelJob(*args, **kws)[source]

Bases: mcgdb.model.task.environment.openmp.representation.Job

completed()[source]
dict_ = {}
static get_current_parallel_job(worker=None)[source]
last_number = 0
list_ = []
start_section_zone(worker, count=0)[source]
start_working(worker)[source]
stop_section_zone(is_parallel_job=False)[source]
stop_working(worker)[source]
static work_completed(worker)[source]
class mcgdb.model.task.environment.openmp.representation.RuntimeController[source]

Bases: object

OMP_MAX_THREADS = None
static is_available()[source]
max_threads
set_barrier(zone, cb)[source]
set_max_threads(max_threads)[source]
worker_at_barrier(worker)[source]
class mcgdb.model.task.environment.openmp.representation.SectionJob(*args, **kws)[source]

Bases: mcgdb.model.task.environment.openmp.representation.Job

completed()[source]
dict_ = {}
last_number = 0
list_ = []
work_on_section(worker, section_id)[source]
class mcgdb.model.task.environment.openmp.representation.SingleJob(*args, **kws)[source]

Bases: mcgdb.model.task.environment.openmp.representation.Job

completed()[source]
dict_ = {}
enter(inside, worker)[source]
finished()[source]
static get_parallel_single_zone(worker)[source]
last_number = 0
list_ = []
class mcgdb.model.task.environment.openmp.representation.TaskJob(*args, **kws)[source]

Bases: mcgdb.model.task.environment.openmp.representation.Job

blockers = {}
static detect_lock()[source]
dict_ = {}
do_taskwait()[source]
done_taskwait()[source]
finish()[source]
get_inherit_properties()[source]
is_not_schedulable()[source]
last_number = 0
last_taskwait = None
list_ = []
static master_zone()[source]
on_property_blocked(name, value)[source]
preferred_blocked = None
propagate_property(key, parent, children)[source]

set key->parent to self and key->children to all dependent tasks

ready()[source]
static repropagate_properties()[source]
restart()[source]
set_dependencies(in_dependencies, inout_dependencies, out_dependencies)[source]
set_property(name, value)[source]
set_task_source_lines(filename, start_line, stop_line)[source]
start(worker)[source]
static task_wait(worker)[source]
static task_wait_done(taskwait)[source]
class mcgdb.model.task.environment.openmp.representation.Worker(*args, **kws)[source]

Bases: mcgdb.model.task.representation.CommComponent, mcgdb.toolbox.aspect.Tracker

TASK_MANAGER

alias of DefaultTaskManager

create(where)[source]
dict_ = {}
static get_current_worker()[source]
is_alive()[source]
is_current()[source]
last_number = 0
list_ = []
say(what)[source]
switch(force=False)[source]
terminated()[source]
work(where, start=False, stop=False)[source]
class mcgdb.model.task.environment.openmp.representation.Zone[source]

Bases: enum.Enum

An enumeration.

Barrier = <Zone.Barrier: 'barrier'>
Critical = <Zone.Critical: 'critical'>
Parallel = <Zone.Parallel: 'parallel'>
Single = <Zone.Single: 'single'>
mcgdb.model.task.environment.openmp.representation.activate()[source]

Interaction Module

mcgdb.model.task.environment.openmp.interaction.activate()[source]
class mcgdb.model.task.environment.openmp.interaction.cmd_omp[source]

Bases: gdb.Command

class mcgdb.model.task.environment.openmp.interaction.cmd_omp_debug[source]

Bases: gdb.Command

invoke(args, from_tty)[source]
class mcgdb.model.task.environment.openmp.interaction.cmd_omp_debug_block[source]

Bases: gdb.Command

invoke(args, from_tty)[source]
class mcgdb.model.task.environment.openmp.interaction.cmd_omp_debug_unblock[source]

Bases: gdb.Command

invoke(args, from_tty)[source]
class mcgdb.model.task.environment.openmp.interaction.cmd_omp_sched[source]

Bases: gdb.Command

invoke(args, from_tty)[source]
class mcgdb.model.task.environment.openmp.interaction.cmd_omp_sched_all[source]

Bases: gdb.Command

invoke(args, from_tty)[source]
class mcgdb.model.task.environment.openmp.interaction.cmd_omp_sched_single[source]

Bases: gdb.Command

invoke(args, from_tty)[source]
mcgdb.model.task.environment.openmp.interaction.step.activate()[source]

Internal function.

mcgdb.model.task.environment.openmp.interaction.step.aspects(Tracks)[source]
mcgdb.model.task.environment.openmp.interaction.step.check_nexting(where, what=None)[source]
mcgdb.model.task.environment.openmp.interaction.step.check_stepping(evt)[source]
mcgdb.model.task.environment.openmp.interaction.step.check_stepping_out(evt)[source]
class mcgdb.model.task.environment.openmp.interaction.step.cmd_omp_next[source]

Bases: gdb.Command

invoke(arg, from_tty)[source]
class mcgdb.model.task.environment.openmp.interaction.step.cmd_omp_step[source]

Bases: gdb.Command

Steps inside the next OPM zone. Usage: (default) -> stop the first thread entering the zone all -> stop all the threads entering the zone out -> stop the end of the (inner most) zone

invoke(args, from_tty)[source]
mcgdb.model.task.environment.openmp.interaction.step.initialize()[source]

Internal function.

class mcgdb.model.task.environment.openmp.interaction.step.step[source]

Bases: object

static nexting(current_where)[source]
static stepping()[source]
static stepping_out()[source]
class mcgdb.model.task.environment.openmp.interaction.sequence.Barrier(parent, _type, label=None, zindex=0)[source]

Bases: mcgdb.model.task.environment.openmp.interaction.sequence.Block

class mcgdb.model.task.environment.openmp.interaction.sequence.Block(parent, _type, label=None, zindex=0)[source]

Bases: object

add_node(node, **kwargs)[source]
enter(node, **kwargs)[source]
exit(node, no_insert=False, **kwargs)[source]
finish()[source]
flow(from_node, to_node, **kwargs)[source]
has_worker(recursive=False)[source]
leave(node)[source]
print_only_current = False
zordered_edges
class mcgdb.model.task.environment.openmp.interaction.sequence.Edge(from_node, to_node, backwards=False, **kwargs)[source]

Bases: object

class mcgdb.model.task.environment.openmp.interaction.sequence.Node(name, worker)[source]

Bases: object

all_nodes = set()
first = None
msg(**kwargs)[source]
mcgdb.model.task.environment.openmp.interaction.sequence.activate()[source]

Internal function.

class mcgdb.model.task.environment.openmp.interaction.sequence.cmd_omp_sequence[source]

Bases: gdb.Command

changed = True
classmethod has_changed(clazz)[source]
invoke(args, from_tty)[source]
sched_locked = None
self = None
thread_num = None
mcgdb.model.task.environment.openmp.interaction.sequence.elipse_str(string)[source]
mcgdb.model.task.environment.openmp.interaction.sequence.initialize()[source]

Internal function.

class mcgdb.model.task.environment.openmp.interaction.sequence.param_graph_auto[source]

Bases: gdb.Parameter

auto_graph_enabled = False
get_set_string()[source]
get_show_string(svalue)[source]
graph_cmd = None
static on_stop(evt=None)[source]
mcgdb.model.task.environment.openmp.interaction.sequence.pre_aspect(help_tracking, self, args)[source]
mcgdb.model.task.environment.openmp.interaction.sequence.sequence_aspects(Tracks)[source]

Toolbox Module

mcgdb.model.task.environment.openmp.toolbox.half_ceil(f)
mcgdb.model.task.environment.openmp.toolbox.half_floor(f)
mcgdb.model.task.environment.openmp.toolbox.initialize()[source]
mcgdb.model.task.environment.openmp.toolbox.say(what=None, who=None, count=None)[source]
mcgdb.model.task.environment.openmp.toolbox.terminal_size()[source]