Skip to content

Hide output (--no-redirect-output) for run <event number> or rr replay --goto=X or rr replay --goto-exit #3876

Closed
@user202729

Description

@user202729

Currently, when I use run <event number> etc., the program will be simulated from start, but everything will be printed.

[tmp]$ rm -rf python-*
[tmp]$ time rr record python -c 'for i in range(10000): print(i, flush=True)' > /dev/null

real    0m1.644s
user    0m1.003s
sys     0m0.668s
[tmp]$ rr replay -g=5000 python-0  # or -e etc.
0
1
2
3
4
5
[...]
989
990
991
992
993
994
995
996
997
GNU gdb (GDB) 15.1
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
--Type <RET> for more, q to quit, c to continue without paging--c
Type "apropos word" to search for commands related to "word"...
No symbol table is loaded.  Use the "file" command.
Reading symbols from /usr/bin/python3.12...
(No debugging symbols found in /usr/bin/python3.12)
Really redefine built-in command "restart"? (y or n) [answered Y; input not from terminal]
Really redefine built-in command "jump"? (y or n) [answered Y; input not from terminal]
Remote debugging using 127.0.0.1:23770

--------------------------------------------------
 ---> Reached target process 744167 at event 5000.
--------------------------------------------------
Reading symbols from /usr/bin/../lib64/rr/librrpreload.so...
Reading symbols from /usr/lib/libdl.so.2...
(No debugging symbols found in /usr/lib/libdl.so.2)
Reading symbols from /usr/lib/libpython3.12.so.1.0...
(No debugging symbols found in /usr/lib/libpython3.12.so.1.0)
Reading symbols from /usr/lib/libc.so.6...
(No debugging symbols found in /usr/lib/libc.so.6)
Reading symbols from /usr/lib/libm.so.6...
(No debugging symbols found in /usr/lib/libm.so.6)
Reading symbols from /lib64/ld-linux-x86-64.so.2...
(No debugging symbols found in /lib64/ld-linux-x86-64.so.2)
Reading symbols from /usr/lib/python3.12/lib-dynload/math.cpython-312-x86_64-linux-gnu.so...
(No debugging symbols found in /usr/lib/python3.12/lib-dynload/math.cpython-312-x86_64-linux-gnu.so)warning: BFD: warning: system-supplied DSO at 0x6fffd000 has a section extending past end of file
0x0000000070000002 in syscall_traced ()
(rr) 

Meanwhile, -q flag can be used to hide them, but then the normal output isn't printed either.

Thought?

(this would be a backwards incompatible change, but I don't think the previous behavior can be considered more desirable?)

On another note, can --goto-exit be faster?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions