与gdb交互意外地工作

时间:2017-01-11 10:31:14

标签: javascript node.js gdb pipe

我只是在试图控制gdb,玩具是gdb的前端。

来自this answer的代码:在我的fedora系统上使用python3非常适合我。但由于某些原因,不能使用gdb。

这有效:

compile project(':support*')

这不起作用:

{children.map(element => {
  return (
    <element.type
      {...element.props}
      style={{
        height: '33%',
      }}
    />
  )
})}

问题:(1)它将此打印到stdout:

  

从gdb-test中读取符号...从gdb-test中读取符号...完成。

因此,出于某种原因,它就像命令运行两次一样。 (2)最重要的是 start 命令没有输入到gdb中,并且它没有做到这一点通常会在其中放置一个断点主要。

例如:如果我在bash中手动运行, start 将导致:&#34;临时断点1,main()在gdb-test.c:5&#34; < / em>的

gdb-test 是编译的代码:

var child = require('child_process');
var ps = child.spawn('python', ['-i']);
ps.stdout.pipe(process.stdout);
ps.stdin.write('1+1');
ps.stdin.end();

我知道gdb has一个 -tty 选项,我不太确定如何设置tty甚至可以工作,这里的任何线索也会受到欢迎,或者关于设置tty和与gdb的机器接口交互的线索。

1 个答案:

答案 0 :(得分:2)

  

启动命令没有输入gdb而它没有输入   在主要的

中设置一个断点是很常见的事情

在gdb提示符中手动键入start命令时,按 Enter 实际执行它。你应该在js脚本中做同样的事情。在\n命令的末尾添加start

ps.stdin.write('start\n');

至于(1)问题,我无法在Fedora上重现它。