This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug python/18175] New: gdb.parse_and_eval should un-lazy results
- From: "xdje42 at gmail dot com" <sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: Sat, 28 Mar 2015 22:12:59 +0000
- Subject: [Bug python/18175] New: gdb.parse_and_eval should un-lazy results
- Auto-submitted: auto-generated
https://sourceware.org/bugzilla/show_bug.cgi?id=18175
Bug ID: 18175
Summary: gdb.parse_and_eval should un-lazy results
Product: gdb
Version: HEAD
Status: NEW
Severity: normal
Priority: P2
Component: python
Assignee: unassigned at sourceware dot org
Reporter: xdje42 at gmail dot com
gdb.parse_and_eval should un-lazy its results.
Otherwise the following can happen.
Try 1:
(gdb) py foo = gdb.parse_and_eval ("*(char*) $sp")
(gdb) x/b $sp
0x7fffffffe1c0: 0
(gdb) py print foo
0 '\000'
(gdb) set *(char*) $sp = 42
(gdb) x/b $sp
0x7fffffffe1c0: 42
(gdb) py print foo
0 '\000' <<<<< expected result
Try 2:
(gdb) py foo = gdb.parse_and_eval ("*(char*) $sp")
(gdb) set *(char*) $sp = 43
(gdb) py print foo
43 '+' <<<<< Ugh.
(gdb)
Note that in the first example, the "py print foo" before modifying
memory is sufficient to un-lazy the value.
I point this out to show that if we don't make this change then
debugging such things can be nasty: a simple "print" can modify
program behaviour.
Guile's parse-and-eval has the same issue.
--
You are receiving this mail because:
You are on the CC list for the bug.