小编nic*_*000的帖子

调试挂在 futex 的 dotnet 核心进程

我正在以下 Linux 嵌入式系统上运行 dotnet core 2.1 应用程序:

Linux arm 4.14.67-1.0.7+ #52 SMP PREEMPT armv7l GNU/Linux
Run Code Online (Sandbox Code Playgroud)

该应用程序在 futex 上挂起几天了:

root@arm:/# strace -p 525
strace: Process 525 attached
futex(0x4a6f4, FUTEX_WAIT_PRIVATE, 29517, NULL
 <detached ...>
Run Code Online (Sandbox Code Playgroud)

我必须找出哪一行 c# 代码产生相应的 futex 调用而不停止进程。如何找到返回生成相应 futex 系统调用的 C# 代码行的方法?

我发现/proc/525/maps地址 0x4a6f4 是堆内存的一部分:

00008000-00019000 r-xp 00000000 00:10 6906       /root/dotnet/dotnet
00021000-00022000 r--p 00011000 00:10 6906       /root/dotnet/dotnet
00022000-00023000 rw-p 00012000 00:10 6906       /root/dotnet/dotnet
00023000-001c6000 rw-p 00000000 00:00 0          [heap]
a545c000-a545d000 ---p 00000000 00:00 0
...
Run Code Online (Sandbox Code Playgroud)

但是我如何才能将该地址与一行代码关联起来呢?我尝试运行gdb -p 525 …

c# linux gdb futex .net-core

7
推荐指数
0
解决办法
600
查看次数

标签 统计

.net-core ×1

c# ×1

futex ×1

gdb ×1

linux ×1