由于最新更新(在过去两周内)skypeforlinux
停止工作,我在日志中找到的唯一内容是
[ 324.575813] traps: skypeforlinux[2487] trap int3 ip:555cb8dab847 sp:7fff797c57b0 error:0 in skypeforlinux[555cb6e96000+5016000]
. Google 搜索没有返回任何有用的信息,大多数结果处理的invalid opcode
是int3
陷阱而不是陷阱。
操作系统是kali-rolling 2019.3
,不知道 Skype 是哪个版本,因为甚至skypeforlinux --help
失败了。
我尝试重新安装skypeforlinux
,我尝试以非 root 用户和 root 用户身份运行它,我已经升级了所有内容并重新启动了系统几次,但没有解决问题。
有没有人有关于如何解决问题的建议,或者至少获得更多信息以找出可能是这里的罪魁祸首?
根据要求,这里是 apt-cache 输出:
skypeforlinux:
Installed: 8.51.0.86
Candidate: 8.51.0.86
Version table:
*** 8.51.0.86 500
500 https://repo.skype.com/deb stable/main amd64 Packages
100 /var/lib/dpkg/status
8.51.0.72 500
500 https://repo.skype.com/deb stable/main amd64 Packages
8.50.0.38 500
500 https://repo.skype.com/deb stable/main amd64 Packages
8.49.0.49 500
500 https://repo.skype.com/deb stable/main amd64 Packages
8.48.0.51 500
500 https://repo.skype.com/deb stable/main amd64 Packages
Run Code Online (Sandbox Code Playgroud)
查看日志$HOME/.config/skypeforlinux/logs/skype-startup.log
我看到一个单一的条目:[7784:0821/103123.389602:FATAL:atom_main_delegate.cc(207)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
运行时,我得到它skypeforlinux
的root
作为,以及与运行它non-root
的用户。
小智 8
在 Centos 7 下从 8.50.0.38-1.x86_64 升级到 8.51.0.86-1.x86_64 版本后,我遇到了同样的问题。
我通过检查日志文件发现以下消息:
FATAL:setuid_sandbox_host.cc(157)] The SUID sandbox helper binary was found,
but is not configured correctly. Rather than run without sandboxing I'm aborting now.
You need to make sure that /usr/share/skypeforlinux/chrome-sandbox is owned by root
and has mode 4755
Run Code Online (Sandbox Code Playgroud)
如果您按照错误消息中的说明进行操作:
chmod 4755 /usr/share/skypeforlinux/chrome-sandbox
Run Code Online (Sandbox Code Playgroud)
它解决了这个问题。
因此,您的skypeforlinux
版本是 8.51.0.86,这是当前的最新版本 - 最近发布。事实上,我的 Debian 10 系统上有完全相同的版本,并且运行良好。
这int3
是一条 x86 处理器指令,用于实现调试断点。
但是在您的情况下,在未在调试器下运行时int3
遇到skypeforlinux
,因此 int3 陷阱向量指向默认内核例程,这本质上等同于向SIGTRAP
程序发送信号。
为什么skypeforlinux
程序代码int3
在没有调试器的生产版本中包含指令?只有能够访问源代码的 Microsoft 人员skypeforlinux
才能回答这个问题,而无需进行大量的逆向工程工作。
请注意,Microsoft 仅承诺可skypeforlinux
在 Ubuntu、Debian、OpenSuSE 和 Fedora 上运行。可能是这个最新版本可能不小心包含了一些调试代码,这些代码仅在某些条件与任何受支持的发行版不匹配时才会执行 - 并导致 Skype 崩溃,因为预期的调试环境不存在。
您可以尝试将 Skype 降级到以前的版本(或apt-cache policy
输出中列出的任何版本),看看是否更适合您:
# apt install skypeforlinux=8.51.0.72
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be DOWNGRADED:
skypeforlinux
0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.
Need to get 0 B/79.0 MB of archives.
After this operation, 1,024 B of additional disk space will be used.
Do you want to continue? [Y/n]
Run Code Online (Sandbox Code Playgroud)
如果降级软件包版本有帮助,您可能希望将软件包设置为暂停,因此apt upgrade
在取消暂停之前不会再次升级它:
# apt-mark hold skypeforlinux
Run Code Online (Sandbox Code Playgroud)
然后,您可能会向 Microsoft 发送关于您的体验的错误报告,但由于他们没有做出任何支持 Kali 的承诺,因此它可能会被忽略或分配到非常低的优先级。