如何区分真正的编程错误和启动参数问题
How to distinguish real programming bugs from issues with startup parameters
应我的一位客户的要求,我正在 CentOS 系统上工作。
最近报告了一个错误,提到在特定情况下生成了核心文件。
经过大量工作,我意识到问题不是因为我的程序表现不佳,而是因为内部配置:我的程序(作为 Java 程序)在没有 [=10] 的情况下启动=] 选项。机器自动设置的最大堆栈大小太小,结果程序崩溃了。
现在,我只需将 -Xss2m
添加到程序的 Java 启动参数即可解决该错误。
现在我在想:想象一下,一个程序在这样的 CentOS 系统上坏了。是否可以以这样一种方式配置系统,以便我可以轻松知道问题是由程序故障引起的还是由 configuration/startup 参数问题引起的?
提前致谢
你假设了一个不存在的区别。
当你提供一个程序时,你就为它提供了所有相关的参数和环境。如果你的程序崩溃了,那么你就有了一个错误。它可能是一个打包错误(尽管我很奇怪它导致了实际的核心生成崩溃,而不是更可诊断的错误消息),但它仍然是一个错误,并且在您提供的交付中。
所以,没有这样的系统,但是 none 很有意义。
应我的一位客户的要求,我正在 CentOS 系统上工作。
最近报告了一个错误,提到在特定情况下生成了核心文件。
经过大量工作,我意识到问题不是因为我的程序表现不佳,而是因为内部配置:我的程序(作为 Java 程序)在没有 [=10] 的情况下启动=] 选项。机器自动设置的最大堆栈大小太小,结果程序崩溃了。
现在,我只需将 -Xss2m
添加到程序的 Java 启动参数即可解决该错误。
现在我在想:想象一下,一个程序在这样的 CentOS 系统上坏了。是否可以以这样一种方式配置系统,以便我可以轻松知道问题是由程序故障引起的还是由 configuration/startup 参数问题引起的?
提前致谢
你假设了一个不存在的区别。
当你提供一个程序时,你就为它提供了所有相关的参数和环境。如果你的程序崩溃了,那么你就有了一个错误。它可能是一个打包错误(尽管我很奇怪它导致了实际的核心生成崩溃,而不是更可诊断的错误消息),但它仍然是一个错误,并且在您提供的交付中。
所以,没有这样的系统,但是 none 很有意义。