【问题标题】:How do you examine core files in dbx?如何检查 dbx 中的核心文件?
【发布时间】:2012-10-30 08:24:53
【问题描述】:

我正在使用 AIX,并且有一个进程不断崩溃。我从来没有检查过核心文件,如果可能的话,我希望得到一些指导。我正在使用 dbx。我如何 (a) 确保核心文件在我希望它去的地方以及 (b) 在它崩溃之前查看进程的状态?

谢谢!

【问题讨论】:

    标签: aix coredump dbx


    【解决方案1】:

    我可以逐步运行,但也不确定是否要调试内核。 我发现这些命令可能是需要关注的。可能还有更多。

    在 dbx 中运行核心后:

    1. 'where' -- 显示堆栈
    2. 'up' 或 'down' -- 在帧中移动,然后你
    3. 'print var' -- 显示变量
    4. 和 'list' 或 'edit' -- 将在当前位置显示文件信息

    在“检查数据”下查看here 帮助了我。

    【讨论】:

      【解决方案2】:

      核心文件在进程的当前工作目录中创建。检查getcwd(),设置chdir()。

      dbx [ -a ProcessID ] [ -B DebugFile ] [ -c CommandFile ] [ -I Directory ] [ -E DebugEnvironment ] [ -p oldpath=newpath:...|路径文件 ] [ -u ] [ -F ] [ -r ] [ -x ] [ -v ] [ -C CoreFile |对象文件[核心文件]]

      使用dbx /path/to/progname /path/to/corefile 将您的程序加载到dbx 中,然后您就可以开始查看您的堆栈跟踪(“where”命令等)。

      如果您没有指定corefile dbx 将自动加载一个名为“core”的匹配文件,如果它与加载的程序位于同一目录中(并且它们匹配签名)。

      阅读man page on dbx,它提供了您需要的所有调试命令。

      另外请注意,您的程序将需要在启用调试符号的情况下进行编译(而不是稍后“剥离”),以便堆栈跟踪最有用。如果没有调试符号,您将在堆栈跟踪中看到函数名称,但不会看到其他内容。

      【讨论】:

        猜你喜欢
        • 2019-09-12
        • 1970-01-01
        • 2014-01-11
        • 1970-01-01
        • 2017-05-01
        • 2018-04-03
        • 1970-01-01
        • 1970-01-01
        • 2015-04-20
        相关资源
        最近更新 更多