From: Willy Tarreau Date: Wed, 27 May 2026 16:49:27 +0000 (+0200) Subject: DEV: dev/gdb: improve ebtree pointer handling X-Git-Tag: v3.4.0~24 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=837d69f8efe376b6b462470d8ae63890ca690494;p=thirdparty%2Fhaproxy.git DEV: dev/gdb: improve ebtree pointer handling The ebtree descent functions currently use $arg0 as is and it's up to the user to manually type the required casts that are never obvious (particularly when coming from a pointer). Let's put the eb_root* cast in the function to be more user-friendly. --- diff --git a/dev/gdb/ebtree.gdb b/dev/gdb/ebtree.gdb index a6b03e949..56b4ea852 100644 --- a/dev/gdb/ebtree.gdb +++ b/dev/gdb/ebtree.gdb @@ -26,7 +26,7 @@ end # returns $node filled with the first node of ebroot $arg0 define ebtree_first # browse ebtree left until encountering leaf - set $node = (struct eb_node *)$arg0->b[0] + set $node = (struct eb_node *)((struct eb_root*)$arg0)->b[0] while 1 _ebtree_set_tag_node $node if $tag == 0 @@ -41,7 +41,7 @@ end # finds next ebtree node after $arg0, and returns it in $node define ebtree_next # get parent - set $node = (struct eb_root *)$arg0->leaf_p + set $node = (struct eb_root *)((struct eb_node *)$arg0)->leaf_p # Walking up from right branch, so we cannot be below root # while (eb_gettag(t) != EB_LEFT) // #define EB_LEFT 0 while 1