I have digged for a while but still have no idea why.
Following code can reproduce the problem,
the net name "M_A_DQ<0>" could be changed to any valid net.
r_net = axlDBFindByName('net "M_A_DQ<0>")
l_children = foreach(mapcan x r_net->branches x->children)
l_path = setof(x l_children equal(x->objType "path"))
l_segments = foreach(mapcan x l_path x->segments) ; works perfect when first run
l_segments = foreach(mapcan x l_path x->segments) ; make my allegro crush......