OpenHarmony开发者论坛

标题: [BUG]: 生成的coredump文件,在windows与ubuntu上无法看到完整的堆栈,但是开发板上可以 [打印本页]

作者: aprial    时间: 2024-2-4 20:14
标题: [BUG]: 生成的coredump文件,在windows与ubuntu上无法看到完整的堆栈,但是开发板上可以
[md]# 发生了什么问题?

依照[Q5.打开CoreDump的方法](https://gitee.com/openharmony/hi ... lease/docs/usage.md)介绍的方法,使用是最近的ohos-sdk工具, 无法windows与Ubuntu上使用lldb调测foundation的coredump文件。但同样的coredump在开发板上使用lldb可以看到完整的堆栈。


# 期望行为是什么?

windows与Ubuntu上使用lldb可以正确的调测foundation的coredump文件。

## windows(或者Ubuntu)

![image.png](https://forums-obs.openharmony.c ... tmdlhls1sr1tdm1.png "image.png")

## 开发板(rk3568)

**我们也试过其他开发板,表现都一样**

<font color="red">这样是不是说明coredump文件本身没有问题, 是windows与Ubuntu的lldb工具有存在问题</font>

![image.png](https://forums-obs.openharmony.c ... dbo9y8e9blx4eo4.png "image.png")


# 如何复现该缺陷\*\*\*\*\*

1, 使用ohos-sdk如下

```
https://cidownload.openharmony.c ... -full_weekly.tar.gz
```

2,  打开foundation相关的coredump脚本

```
hdc shell "toybox prlimit -c -H unlimited"
hdc shell "toybox prlimit -c -S unlimited"
hdc shell "toybox prlimit -c -H unlimited -P $(pidof foundation)"
hdc shell "toybox prlimit -c -S unlimited -P $(pidof foundation)"
hdc shell "echo 1 > /proc/sys/kernel/core_uses_pid"
hdc shell "echo 1 > /proc/sys/kernel/print-fatal-signals"
hdc shell "echo 0x33 > /proc/$(pidof foundation)/coredump_filter"
hdc shell "mkdir -p /data/log/coredump; chmod 777 -R /data/log/coredump; echo /data/log/coredump/coredump.%p.bin > /proc/sys/kernel/core_pattern"
```

3, 生成coredump的命令

```
echo $(pidof foundation) && kill -SEGV $(pidof foundation)
```

4, 把coredump保存到windows上。

5,使用windows(或者Ubuntu)上对应版本的lldb查看堆栈。

```
lldb -c <coredump_file> <unstriped_file>
bt
p <var>
f <frame_no>
```

![image.png](https://forums-obs.openharmony.c ... gcwcwa1ksxkez2k.png "image.png")

6. 在开发板上

![image.png](https://forums-obs.openharmony.c ... t9l3d1idcbeebsr.png "image.png")

**版本或分支信息**

- master

- release 4.0
[/md]
作者: 论坛小助手    时间: 2024-2-22 14:11
使用lldb进行调测coredump文件时,需要和设备进行远程连接。
解决步骤:
1. 将生成的coredump文件,保存到windows或ubuntu上
2. 连接OH设备,在OH上启动lldb-server,windows或ubuntu上启动lldb,进行远程连接,详情参考https://gitee.com/openharmony/th ... 9E%E6%8E%A5platform
3. 使用target create -c [coredump file path]调测coredump文件,coredump file path,为步骤1中保存的coredump文件的路径
4. 等待加载完即可进行coredump文件的调测




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5