… | |
… | |
61 | set a tty (eg. with the "inferior_set_tty" command). |
61 | set a tty (eg. with the "inferior_set_tty" command). |
62 | |
62 | |
63 | Unfortunately, the MI interface does not seem to support any kind of I/O |
63 | Unfortunately, the MI interface does not seem to support any kind of I/O |
64 | redirection, so this module helps you a bit, by setting the |
64 | redirection, so this module helps you a bit, by setting the |
65 | "exec-wrapper" variable with a console "set" commmand. That is, this |
65 | "exec-wrapper" variable with a console "set" commmand. That is, this |
66 | module does soemthing like this for you, providing proper file |
66 | module does soeQmthing like the following for you, providing proper file |
67 | descriptors fpr your actual stdin and stdout: |
67 | descriptors for your actual stdin and stdout: |
68 | |
68 | |
69 | set exec-wrapper <&5 >&6 |
69 | set exec-wrapper <&5 >&6 |
70 | |
70 | |
71 | The actual I/O redirection operators are also stored in "$gdb->{stdio}", |
71 | The actual I/O redirection operators are also stored in "$gdb->{stdio}", |
72 | so you can even do it yourself, e.gh. when providing your own wrapper: |
72 | so you can even do it yourself, e.g. when providing your own wrapper: |
73 | |
73 | |
74 | $self->cmd_raw ("set exec-wrapper $self->{stdio}", sub { }); |
74 | $self->cmd_raw ("set exec-wrapper $self->{stdio}", sub { }); |
75 | |
75 | |
76 | (You need to use a raw command, as the "correct" "gdb_set" MI command |
76 | (You need to use a raw command, as the "correct" "gdb_set" MI command |
77 | silently ignores any "exec-wrapper" setting). |
77 | silently ignores any "exec-wrapper" setting). |
… | |
… | |
84 | tracing or at least "verbose" enabled. And don't forget to provide |
84 | tracing or at least "verbose" enabled. And don't forget to provide |
85 | an "on_eof" callback. |
85 | an "on_eof" callback. |
86 | |
86 | |
87 | my $gdb = new AnyEvent::GDB |
87 | my $gdb = new AnyEvent::GDB |
88 | on_eof => sub { |
88 | on_eof => sub { |
89 | print Qe are done.\n"; |
89 | print "We are done.\n"; |
90 | }, |
90 | }, |
91 | trace => 1; # or verbose => 1, for less output |
91 | trace => 1; # or verbose => 1, for less output |
92 | |
92 | |
93 | exec => $path (default: "gdb") |
93 | exec => $path (default: "gdb") |
94 | The path of the GDB executable. |
94 | The path of the GDB executable. |