我正在关注一本书,其中需要 Insight 调试器。我没有在我的 Maverick 上找到它。我用谷歌搜索,发现 debian 不再支持它,但我真的需要安装它。我试图编译源代码并安装了它,但每次启动它时都一直告诉我缺少 tk。我用 sudo aptitude install tk 安装了 tk 然后尝试再次运行它是一样的。我又编译了一次,并没有真正改变。那么请问我该如何安装呢?
更新:这是我收到的消息
Tk_Init failed: Can't find a usable tk.tcl in the following directories:
/usr/local/share/tk8.4 /usr/local/lib/tk8.4 /usr/lib/tk8.4 /usr/local/library /usr/library /usr/tk8.4.1/library /tk8.4.1/library
/usr/local/share/tk8.4/tk.tcl: no event type or button # or keysym
no event type or button # or keysym
while executing
"bind Listbox <MouseWheel> {
%W yview scroll [expr {- (%D / 120) * 4}] units
}"
(file "/usr/local/share/tk8.4/listbox.tcl" line 182)
invoked from within
"source /usr/local/share/tk8.4/listbox.tcl"
(in namespace …Run Code Online (Sandbox Code Playgroud) 所以我注意到调用 GDB 中的标准库函数时出现了一些严重不正确的行为。我有以下程序来说明:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
char *s1 = "test";
char *s2 = calloc(strlen("test")+1,sizeof(char));
snprintf(s2,strlen("test")+1,"test");
printf("string constant: %lu\n", strlen(s1));
printf("allocated string: %lu\n", strlen(s2));
free(s2);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当从命令行运行时,这个程序输出你所期望的:
string constant: 4
allocated string: 4
Run Code Online (Sandbox Code Playgroud)
但是,在 GDB 中,我从对 strlen() 的调用中得到以下不正确的输出:
(gdb) p strlen(s1)
$1 = -938856896
(gdb) p strlen(s2)
$2 = -938856896
Run Code Online (Sandbox Code Playgroud)
我很确定这是 Ubuntu 附带的 glibc 的问题(我使用的是 10.10),但对于我们这些在 GDB 上花费大量时间的人来说,这是一个严重的问题。
有没有其他人遇到这种错误?
修复它的最佳方法是什么?从源代码构建 glibc?(我已经在运行从源代码构建的 GDB 版本)
我将 Ubuntu 10.04 Server 作为文件服务器运行。它位于 Windows Active Directory 域 (2008 SBS) 上,并且已经运行了好几年(几个月前迁移到新硬件并从 8.04 升级)。客户端最初都是Windows XP,但现在Mac(12 Snow Leopard,2 Lion)比Windows(1 XP,1 Vista,2 Seven)更多,它们仍然使用Samba进行共享。
今天,一些用户在 Snow Leopard(至少是 Flash CS5 和 Photoshop)上遇到各种 Adobe 产品在直接从网络打开文件时崩溃或丢失部分的问题,但在将文件复制到桌面并从那里打开时他们没有问题。我个人没有遇到过这些问题。
确定正在发生的事情的最佳方法是什么?
我有一台笔记本电脑、一台台式机和一根备用的 5' 以太网电缆,我可以用它直接将一个连接到另一个。桌面每隔几天左右就会冻结,似乎是随机的,当它发生时,我希望能够ssh像这里提到的那样进入它,这样我就可以做出正确的错误报告并解决这个问题。
不幸的是,链接指南没有提供有关如何执行此操作的任何说明。有人可以提供有关如何在ssh我的笔记本电脑冻结时如何从我的笔记本电脑进入我的台式机的分步答案,以及如何在登录后方便地检索必要的文件以附加到错误报告中吗?
需要牢记以下几点:
启动时gparted,它崩溃并出现错误:
Gtk-ERROR **: GTK+ 2.x symbols detected.
Using GTK+ 2.x and GTK+ 3 in the same process is not supported
Run Code Online (Sandbox Code Playgroud)
我已经为此打开了LP bug #1094354 。
在互联网上搜索此错误,我发现几乎每个 Linux 发行版都遇到了与其他各种基于 GTK 的程序(例如 gedit、gwibber、canberra-gtk 等)有关 GTK+ 2.x/GTK+3 错误的相同问题。 ..
GTK 开发人员声称这不是 GTK 错误。然而,在我用谷歌搜索过的所有网站上,没有人能回答这个错误消息的实际含义。
程序中发生了什么导致此错误?这个错误的详细含义是什么?
带有 Unity 的 Ubuntu 12.10 64 位。
当我重新启动或关闭 PC 时,它需要很长时间才能完成。
它显示了行Asking all remaining processes to terminate... [fail]和之后Killing all remaining processes。
我该如何调试以确定问题的根源?
我find / -name abc.html再次运行此命令后不久就跑了。这次它非常快,所以我知道find一定是在某处缓存了结果。
如何找出缓存的存储位置?
当我在 Ubuntu 20.04 上运行我的 C 程序时,我得到这个运行时错误:
Run Code Online (Sandbox Code Playgroud)Segmentation fault (core dumped)
我真的需要查找和查看该core文件,但我在任何地方都找不到它。它在哪里,我如何查看其中的回溯?
我很难弄清楚这一点,但我终于做到了,我将发布我自己的问题的答案供其他人使用。
我姐姐有一台笔记本电脑,在 Windows 时代总是崩溃(蓝屏)(硬件相对较新且是最新的)。当时她将转储文件从 Windows 发送给戴尔,戴尔派了一名工程师更换了主板,但在使用许多不同内核的许多不同版本中设置 Ubuntu 后,恐慌仍然没有消失。
因此,我决定采取行动,以找到问题的确切原因,我安装并配置了 linux-crashdump 软件包(kdump-tools),以使用 kexec 自动启动崩溃内核,该内核生成内存转储文件并存储dmesg 输出。我还安装了 crash、kernel-image-generic-dbgsym 和 mcelog,以便收集尽可能多的信息。
因此笔记本电脑崩溃了,崩溃内核成功生成了转储文件并存储了 dmesg 输出。我还检查了 /var/log/mcelog 但该文件完全是空的,尽管守护进程在崩溃之前正在运行,这很奇怪,但毕竟我们仍然有 dmesg 输出,其中指出:
[ 3933.364173] mce: [Hardware Error]: CPU 4: Machine Check Exception: 5 Bank 3: be00000000200135
[ 3933.364177] mce: [Hardware Error]: RIP !INEXACT! 10:<ffffffff8171d9c2> {_raw_spin_lock+0x12/0x50}
[ 3933.364182] mce: [Hardware Error]: TSC a0255fbd7f7 ADDR 42dd14480 MISC d62285
[ 3933.364185] mce: [Hardware Error]: PROCESSOR 0:306a9 TIME 1398357146 SOCKET 0 APIC 1 microcode 15
[ 3933.364186] mce: [Hardware Error]: Run the above …Run Code Online (Sandbox Code Playgroud)