【发布时间】:2017-01-11 10:31:13
【问题描述】:
我只是在玩弄控制gdb,玩具是gdb的前线。
来自this answer 的代码:在我的fedora 系统上使用python3 非常适合我。但由于某种原因不适用于 gdb。
这行得通:
var child = require('child_process');
var ps = child.spawn('python', ['-i']);
ps.stdout.pipe(process.stdout);
ps.stdin.write('1+1');
ps.stdin.end();
这不起作用:
var child = require('child_process');
var ps = child.spawn("gdb", ['gdb-test', '-q']);
ps.stdout.pipe(process.stdout);
ps.stdin.write('start');
问题:(1) 将其打印到标准输出:
正在从 gdb-test 中读取符号...正在从 gdb-test 中读取符号...完成。
所以由于某种原因,就好像该命令运行了两次。 (2) 最重要的是,start 命令并没有被输入到 gdb 中,而且它也没有像往常一样在 main 中放置一个断点。
例如:如果我在 bash 中手动运行,start 将导致:"Temporary breakpoint 1, main () at gdb-test.c:5"
gdb-test 这段代码是否已编译:
//gdb-test.c:
#include<stdio.h>
int main()
{
int i = 10;
i++;
printf("%d\n");
}
我知道gdb has 一个 -tty 选项,我不太确定设置 tty 应该如何工作,这里的任何线索也将受到欢迎,或设置线索一个 tty 并与 gdb 的机器界面交互。
【问题讨论】:
标签: javascript node.js gdb pipe