Linux gdbserver在带有pthread或任何链接libpthread.so的WSL中失败

Linux gdbserver在带有pthread或任何链接libpthread.so的WSL中失败,linux,gdb,pthreads,windows-subsystem-for-linux,gdbserver,Linux,Gdb,Pthreads,Windows Subsystem For Linux,Gdbserver,如果我在WSL中使用first continue之前尝试使用gdbserver并在任何位置设置任何断点,则在使用gdbserver:Cannot get thread handle for LWP.\35;:generic error启动程序后失败 若我试图先启动程序,gdbserver将忽略来自gdb的所有命令,只有在程序完成后,所有用gdb编写的命令才开始被处理 有效: ldd/测试 linux vdso.so.1(0x00007ffff7063000) libc.so.6=>/lib/x8

如果我在WSL中使用first continue之前尝试使用gdbserver并在任何位置设置任何断点,则在使用gdbserver:Cannot get thread handle for LWP.\35;:generic error启动程序后失败

若我试图先启动程序,gdbserver将忽略来自gdb的所有命令,只有在程序完成后,所有用gdb编写的命令才开始被处理

有效: ldd/测试
linux vdso.so.1(0x00007ffff7063000)
libc.so.6=>/lib/x86_64-linux-gnu/libc.so.6(0x00007f4b608d0000)
/lib64/ld-linux-x86-64.so.2(0x00007f4b61000000)

没有: ldd/测试
linux vdso.so.1(0x00007fffd0105000)
libpthread.so.0=>/lib/x86_64-linux-gnu/libpthread.so.0(0x00007f443aff0000)
libc.so.6=>/lib/x86_64-linux-gnu/libc.so.6(0x00007f443abf0000)
/lib64/ld-linux-x86-64.so.2(0x00007f443b600000)

cc--version

cc(Ubuntu 7.5.0-3ubuntu1~18.04)7.5.0

构建:
cc-o测试。/src/main.c-pthread

代码:(c)

#包括
#包括
#包含//sleep()的头文件。男士3:详细情况请睡眠。
#包括
//作为线程执行的普通C函数
//在pthread_create()中指定其名称时
void*myThreadFun(void*vargp)
{
(无效)vargp;
睡眠(1);
printf(“从线程打印Geeksquick\n”);
返回NULL;
}
int main()
{
pthread_t thread_id;
printf(“线程前\n”);
pthread_create(&thread_id,NULL,myThreadFun,NULL);
pthread_join(thread_id,NULL);
printf(“线程后\n”);
出口(0);
}
gdbserver
LD_PRELOAD=/lib/x86_64-linux-gnu/libpthread.so.0 gdbserver:54321./test

gdbserver:54321./test

创建过程/测试;pid=11088
正在侦听端口54321
从主机127.0.0.1进行远程调试
gdbserver:无法获取LWP 11088的线程句柄:一般错误
正在侦听端口54321
终止

gdb
echo target remote 127.0.0.1:54321>/tmp/test.gdbinit

gdb-x/tmp/test\u.gdbinit

GNU gdb(Ubuntu 8.1.1-0ubuntu1)8.1.1
版权所有(C)2018免费软件基金会 许可证GPLv3+:GNU GPL版本3或更高版本
这是免费软件:您可以自由更改和重新发布它。
在法律允许的范围内,不存在任何担保。键入“显示复制”
和“显示保修”了解详细信息。
此GDB配置为“x86_64-linux-gnu”。
键入“显示配置”查看配置详细信息。
有关错误报告说明,请参阅:
.
在线查找GDB手册和其他文档资源:
.
要获得帮助,请键入“帮助”。
键入“apropos word”搜索与“word”相关的命令。
从远程目标读取/home/mtunder/workspace/portfolio/test/test…
警告:来自远程目标的文件传输可能很慢。改为使用“设置系统根目录”在本地访问文件。
从远程目标读取/home/mtunder/workspace/portfolio/test/test…
正在从目标读取符号:/home/mtunder/workspace/portfolio/test/test…(未找到调试符号)…完成。
正在从远程目标读取/lib64/ld-linux-x86-64.so.2…
正在从远程目标读取/lib64/ld-linux-x86-64.so.2…
正在从远程目标读取/lib64/ld-2.27.so…
正在从远程目标读取/lib64/.debug/ld-2.27.so…
0x00007FFF401090英寸??()来自目标:/lib64/ld-linux-x86-64.so.2
(gdb)
b main

0x80007c7处的断点1
(gdb)
c

继续。
正在从远程目标读取/lib/x86_64-linux-gnu/libpthread.so.0…
正在从远程目标读取/lib/x86_64-linux-gnu/libc.so.6…
正在从远程目标读取/lib/x86_64-linux-gnu/libc-2.27.so…
正在从远程目标读取/lib/x86_64-linux-gnu/.debug/libc-2.27.so…
(gdb)
CTRL+Z

[1] +停止

一些dkpg输出:
|?|名称|版本|架构|描述|
|-|----|-------|------------|-----------|

dpkg-l*螺纹*

unlibthread队列perl(无可用描述)
unlibthreads perl(没有可用的描述)
un-libthreads共享perl(无描述)

dpkg-l*gdb*

ii gdb 8.1.1-0ubuntu1 amd64 GNU调试器
un gdb文件(无说明)
ii gdb multiarch 8.1.1-0ubuntu1 amd64 GNU调试器(支持多种体系结构)
un gdbm-l10n(无可用说明)
ii gdbserver 8.1.1-0ubuntu1 amd64 GNU调试器(远程服务器)
ii libgdbm-compat4:amd64 1.14.1-6 amd64 GNU dbm数据库例程(旧版支持运行时版本
ii libgdbm5:amd64 1.14.1-6 amd64 GNU dbm数据库例程(运行时版本)
ii Python 3 gdbm:amd64 3.6.9-1~18.04 amd64 GNU dbm数据库对Python 3.x的支持
un python3 gdbm dbg(无描述)
un python3.6-gdbm(无描述)
un python3.7-gdbm(无描述)
un python3.8-gdbm(无描述)