From: Waldemar Kozaczuk <[email protected]> Committer: Waldemar Kozaczuk <[email protected]> Branch: master
debugging: fix loader.py to handle "osv runqueue" properly Apparently existing implementation of "osv runqueue" in loader.py navigates the sched::cpus::runqueue structure which is an rbtree in a way that started breaking at some point probably with newer versions of boost. To fix it we simply use the existing intrusive_set_root_node() method to help us navigate runqueue in a more resilient way. Signed-off-by: Waldemar Kozaczuk <[email protected]> --- diff --git a/scripts/loader.py b/scripts/loader.py --- a/scripts/loader.py +++ b/scripts/loader.py @@ -1489,8 +1489,7 @@ def runqueue(cpuid, node=None): cpus = gdb.lookup_global_symbol('sched::cpus').value() cpu = cpus['_M_impl']['_M_start'][cpuid] rq = cpu['runqueue'] - p = rq['data_']['node_plus_pred_'] - node = p['header_plus_size_']['header_']['parent_'] + node = intrusive_set_root_node(rq) if node: offset = gdb.parse_and_eval('(int)&((sched::thread *)0)->_runqueue_link') -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/osv-dev/00000000000085fdd405aa04506f%40google.com.
