[PATCH v5 2/8] GDB/Python: Use None for `var_zuinteger_unlimited' value set to `unlimited'

Simon Sobisch simonsobisch@web.de
Wed Mar 30 10:35:33 GMT 2022


That seems like it should be mentioned in NEWS as it possibly affects
existing python extensions (if the commit that was fixed landed in an
official release).

Am 30.03.2022 um 12:23 schrieb Maciej W. Rozycki:
> Consistently with the `var_integer' and `var_uinteger' parameters return
> the special value of None for a `var_zuinteger_unlimited' parameter set
> to `unlimited' by using the Py_RETURN_NONE macro in this case, fixing
> commit 0489430a0e1a ("Handle var_zuinteger and var_zuinteger_unlimited
> from Python"); cf. PR python/20084.  Adjust the testsuite accordingly.
> ---
> No change from v4.
>
> New change in v4.
> ---
>   gdb/python/python.c                       |   10 +++++++++-
>   gdb/testsuite/gdb.python/py-parameter.exp |    4 ++--
>   2 files changed, 11 insertions(+), 3 deletions(-)
>
> gdb-python-var-zuinteger-unlimited-none.diff
> Index: src/gdb/python/python.c
> ===================================================================
> --- src.orig/gdb/python/python.c
> +++ src/gdb/python/python.c
> @@ -507,9 +507,17 @@ gdbpy_parameter_value (const setting &va
>   	Py_RETURN_NONE;
>         /* Fall through.  */
>       case var_zinteger:
> -    case var_zuinteger_unlimited:
>         return gdb_py_object_from_longest (var.get<int> ()).release ();
>
> +    case var_zuinteger_unlimited:
> +      {
> +	int val = var.get<int> ();
> +
> +	if (val == -1)
> +	  Py_RETURN_NONE;
> +	return gdb_py_object_from_longest (val).release ();
> +      }
> +
>       case var_uinteger:
>         {
>   	unsigned int val = var.get<unsigned int> ();
> Index: src/gdb/testsuite/gdb.python/py-parameter.exp
> ===================================================================
> --- src.orig/gdb/testsuite/gdb.python/py-parameter.exp
> +++ src/gdb/testsuite/gdb.python/py-parameter.exp
> @@ -343,8 +343,8 @@ proc_with_prefix test_integer_parameter
>   	} elseif {$kind == "PARAM_ZUINTEGER_UNLIMITED"} {
>   	    gdb_test_no_output "python test_param_$kind.value = -1" \
>   		"check that PARAM_ZUINTEGER value can be set to -1"
> -	    gdb_test "python print(gdb.parameter('test-$kind'))" "-1" \
> -		"check that PARAM_ZUINTEGER value is -1 after setting"
> +	    gdb_test "python print(gdb.parameter('test-$kind'))" "None" \
> +		"check that PARAM_ZUINTEGER value is None after setting"
>   	} else {
>   	    error "invalid kind: $kind"
>   	}


More information about the Gdb-patches mailing list