+2016-10-12 Luis Machado <lgustavo@codesourcery.com>
+
+ * gdb.python/py-value.c (main): Check if argv is NULL before using it.
+ * gdb.python/py-value.exp (test_value_in_inferior): Don't use hardcoded
+ argc values.
+ Add 1 to argc so we guarantee distinct initial/modified argc values.
+
2016-10-11 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.arch/powerpc-prologue.c (optimized_1): New declaration.
int
main (int argc, char *argv[])
{
- char *cp = argv[0]; /* Prevent gcc from optimizing argv[] out. */
+ char *cp;
struct s s;
union u u;
PTR x = &s;
const char *sn = 0;
struct str *xstr;
+ /* Prevent gcc from optimizing argv[] out. */
+
+ /* We also check for a NULL argv in case we are dealing with a target
+ executing in a freestanding environment, therefore there are no
+ guarantees about argc or argv. */
+ if (argv != NULL)
+ cp = argv[0];
+
s.a = 3;
s.b = 5;
u.a = 7;
gdb_test "python inval2 = inval+1" "gdb.MemoryError: Cannot access memory at address 0x0.*" $test
gdb_test "python inval.fetch_lazy ()" "gdb.MemoryError: Cannot access memory at address 0x0.*" $test
}
+ set argc_value [get_integer_valueof "argc" 0]
gdb_test "python argc_lazy = gdb.parse_and_eval('argc')"
gdb_test "python argc_notlazy = gdb.parse_and_eval('argc')"
gdb_test "python argc_notlazy.fetch_lazy()"
gdb_test "python print (argc_lazy.is_lazy)" "True"
gdb_test "python print (argc_notlazy.is_lazy)" "False"
- gdb_test "print argc" " = 1" "sanity check argc"
+ gdb_test "print argc" " = $argc_value" "sanity check argc"
gdb_test "python print (argc_lazy.is_lazy)" "\r\nTrue"
- gdb_test_no_output "set argc=2"
- gdb_test "python print (argc_notlazy)" "\r\n1"
- gdb_test "python print (argc_lazy)" "\r\n2"
+ gdb_test_no_output "set argc=[expr $argc_value + 1]" "change argc"
+ gdb_test "python print (argc_notlazy)" "\r\n$argc_value"
+ gdb_test "python print (argc_lazy)" "\r\n[expr $argc_value + 1]"
gdb_test "python print (argc_lazy.is_lazy)" "False"
# Test string fetches, both partial and whole.