Summary: | printing of large objects not interruptable | ||
---|---|---|---|
Product: | gdb | Reporter: | dje |
Component: | gdb | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | NEW --- | ||
Severity: | normal | ||
Priority: | P2 | ||
Version: | 7.8 | ||
Target Milestone: | --- | ||
Host: | Target: | ||
Build: | Last reconfirmed: |
Description
dje
2014-11-17 19:39:46 UTC
I think what's taking awhile and is uninterruptable is computing repeated elements. The computation proceeds passed "print elements". E.g., change foo to 1M bytes and it still takes awhile, but it completes without taking "forever". (gdb) set debug target 1 (gdb) p *p target_thread_address_space (process 12972) = 1 native:target_xfer_partial (2, (null), 0x2dd1610, 0x0, 0x401ba8, 8) = 1, 8, bytes = 10 10 60 f7 ff 7f 00 00 native:target_xfer_partial (2, (null), 0x7f63eadcc010, 0x0, 0x7ffff7601010, 1048576) = 1, 1048576, bytes = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ... $1 = { [long uninterruptible pause here] foo = '\000' <repeats 1048575 times> } (gdb) Then if I change foo to contain random text (but leave it still 1GB in size) up to "print elements" (default = 200) then it completes reasonably quickly. |