如何在Docker容器中debuggingseg错误?
我在一个容器中运行ESLint – 一个用于javascript文件的linter: https : //github.com/codeclimate/codeclimate-eslint
该程序运行ESLint cli analyze
命令,并提供一个代码分析目录作为容器中的一个卷。
该程序捕获ESLint结果并重新格式化,然后重新输出到STDOUT。
通常情况下,这可以正常工作,但面对单个文件中的大量问题 – 例如缩小文件 – 进程段错误。 唯一的错误提供: Segmentation fault
由于本身在相同的代码基础上本身运行ESLint,因此我把这个原因归因于集装箱化。
我已经试验了显着增加内存和 – 容器无效,无济于事。 我也做了一些Googlesearch,但没有find一个类似的具体情况。
任何想法的下一步debugging这个问题?
谢谢!
您可以通过在启动您的应用程序的脚本中运行ulimit -c unlimited
来允许核心文件。 然后你可以用一个debugging器(例如gdb)来处理核心文件,以find段错误的原因。 为了从停止的容器中获取核心文件,有docker cp $container_id:/path/to/core /host/destination/core
。