【发布时间】:2020-06-16 02:27:45
【问题描述】:
我已经在 Windows 上使用 git bash 几年了,从来没有遇到过任何真正的问题。现在我面临一个有点奇怪的问题。每当使用 xargs 命令时,我都会收到此错误:
assertion "bc_ctl.arg_max >= LINE_MAX" failed: file "xargs.c", line 500, function: main
Aborted (core dumped)
转储的核心对我来说并不是特别有用,因为它只包含 Frame/Function/Args 十六进制值:
1 Stack trace:^M
2 Frame Function Args^M
3 000FFFFC370 0018005D14C (000FFFFE3F4, 00000000002, 000FFFFC4A0, 000FFFFDE50)^M
...
15 End of stack trace
即使使用像xargs --version 这样简单的命令,我仍然得到相同的结果。我已经搜索并阅读了许多自述文件、博客和手册,但我似乎找不到导致这种情况的原因。我知道断言意味着我的命令比 LINE_MAX 大;这是我系统上的:
workspace $>getconf LINE_MAX
2048
但我看不出xargs --version 比 2048 大/长。
感谢任何帮助或提示。
谢谢
【问题讨论】:
-
您是否将输入传递给
xargs?你只运行“xargs --version”吗?您可以尝试像xargs --something这样的未处理选项吗?line 500你知道你有什么 xargs/gnuutils 版本吗? github.com/c9/node-gnu-tools/blob/master/findutils-src/xargs/… -
未处理选项的结果相同。至于我相信我在 findutils 4.2.20 上的版本,但我不能确定,因为即使
--version选项也不起作用。 -
xargs尝试将参数打包到一定数量。如果由于某种原因在xargs执行期间达到了限制,这可能是一个错误,但您可以强制设置字符数,例如xargs --max-chars=1024 -
@KamilCuk 会的!无论如何,这几乎就是我认为的下一步。
-
ARG_MAX=32000 和 _POSIX_ARG_MAX=4096