linux下调试core的命令,察看堆栈状态命令

linux下调试core的命令,察看堆栈状态命令

Linux 下调试 core

在 Linux 下编写程序时,有时会出现 Segment fault 的错误。此时内核会在当前工作目录下生成一个 core 文件(是一个内存映像,同时加上调试信息)。使用 gdb 可以查看 core 文件,可以指示出导致程序崩溃的代码位置。

首先,检查当前目录是否有 core 文件:

ll core

如果没有,则需要设置 ulimit 中的参数。以下为系统对用户的默认限制:

ulimit -a

输出可能如下:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority                 (-e) 0
file size               (blocks, -f) unlimited
pending signals                   (-i) 15423
max locked memory         (kbytes, -l) 64
max memory size           (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size                (kbytes, -s) 8192
cpu time                    (seconds, -t) unlimited
max user processes              (-u) 15423
virtual memory            (kbytes, -v) unlimited
file locks                      (-x) unlimited

设置 core file size 的默认大小:

ulimit -c

输出可能如下:

core file size          (blocks, -c) 1024
data seg size           (kbytes, -d) unlimited
scheduling priority                 (-e) 0
file size               (blocks, -f) unlimited
pending signals                   (-i) 15423
max locked memory         (kbytes, -l) 64
max memory size           (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size                (kbytes, -s) 8192
cpu time                    (seconds, -t) unlimited
max user processes              (-u) 15423
virtual memory            (kbytes, -v) unlimited
file locks                      (-x) unlimited

再次运行程序,就发现当前文件中有 core 文件。

现在开始调试该 core 文件:

gdb --core=core
bt

此时 gdb 不知道 core 中的符号,可以用 file 命令读取 test_core 的符号内容:

file test_core

Read more

超快速,使用ChatGPT编写回归和分类算法

超快速,使用ChatGPT编写回归和分类算法

本文将使用一些 ChatGPT 提示,这些提示对于数据科学家在工作时非常重要。 微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩 以下是一些示例ChatGPT 提示的列表以及数据科学家的响应。 ChatGPT 提示 为决策树回归算法生成 python 代码。 下面是使用scikit-learn在 Python 中进行决策树回归的示例代码: import numpy as np import matplotlib.pyplot as plt from sklearn.tree import DecisionTreeRegressor # Generate random data rng = np.random.default_rng() x = 5 * rng.random(100) y = np.sin(x) + 0.

By Ne0inhk
力扣每日一题:993.二叉树的堂兄弟节点 深度优先算法

力扣每日一题:993.二叉树的堂兄弟节点 深度优先算法

993.二叉树的堂兄弟节点 难度:简单 题目: 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root ,以及树中两个不同节点的值 x 和 y 。 只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true 。否则,返回 false。 示例: 示例 1: 输入:root = [1,2,3,4], x = 4, y = 3 输出:false

By Ne0inhk
1239.串联字符串的最大长度 关于字符串的回溯算法!

1239.串联字符串的最大长度 关于字符串的回溯算法!

题目: 给定一个字符串数组 arr,字符串 s 是将 arr 某一子序列字符串连接所得的字符串, 如果 s 中的每一个字符都只出现过一次,那么它就是一个可行解。 请返回所有可行解 s 中最长长度。 提示: 1 <= arr.length <= 16 1 <= arr[i].length <= 26 arr[i] 中只含有小写英文字母 示例: 示例 1: 输入:arr = ["un","iq","ue"] 输出:4 解释:所有可能的串联组合是

By Ne0inhk