[英]Error message by shell on running addr2line pragmatically on Ubuntu
我有以下代码:
char command[256];
sprintf(command,"addr2line %p -e xcep_app", trace[i]);
addr2lineWriter = popen(command, "r");
if (addr2lineWriter == NULL)
flag = false;
if (flag == true) //execute parsing the output only if the command ran in the first place
{
while (fgets(addr2line_output, sizeof(addr2line_output)-1, addr2lineWriter) != NULL)
{
std::string addr2line_output_(addr2line_output);
complete_backtrace_.push_back(addr2line_output_);
}
pclose(addr2lineWriter);
}
一切正常,但我总是收到以下消息: sh: 1: Syntax error: word unexpected (expecting ")")
为什么它来了,以及如何停止它。 另外,这是什么意思? 我已经安装了gnome终端。
这是基于错误消息的猜测。 trace[i]
为NULL,因此生成的命令为:
addr2line (nil) -e xcep_app
因此,被调用以执行命令的外壳抱怨括号。 @ WumpusQ.Wumbley报告ash
将重现此消息:
ash -c 'addr2line (nil) -e xcep_app'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.