我有一个 C 程序,它在深入陷入无限递归混乱之后对错误进行分段。在 GDB 中回溯过程是没有用的,因为调用堆栈帧至少有1000 帧深,并且重复的函数调用是一系列四个常见的递归函数调用(因此断点似乎没有用)。对 backtrace 的重复调用只是一遍又一遍地读出四个函数名称。我突然想到,做 'up' 'up' 'up'... 会让我更上一层楼,所以我可以看到这种模式首先开始发生的地方,但似乎从最顶层的调用开始会更有效堆栈帧并逐步下降,因为我的直觉是无限递归在过程的早期开始。如果调用堆栈总共有 N 帧,我知道我可以做
gdb>> up N
Run Code Online (Sandbox Code Playgroud)
到达堆栈的顶部(第 N 帧),但问题是我不知道 N。是否有用于查找调用堆栈中的总帧数的命令?或者,是否有一个巧妙的内置 GDB 命令用于跳转到最顶层的帧?我突然想到最顶层的框架应该是main()函数——我可以利用这些知识到达最顶层的框架吗?
我在通过 SSH 进行 X 转发时遇到问题。我已经战斗了很长时间,但似乎没有人能提供帮助。
我现在采取不同的策略。我想知道如何调试错误?
我应该查看哪些日志,我应该设置哪些额外的标志(-v 等)以及我应该寻找什么?
进一步编辑:
如果我将 Putty 登录到服务器并尝试xeyes,我会得到:
PuTTY X11 代理:尝试了错误的授权协议错误:无法打开显示:本地主机:10.0
如果xauth generate $DISPLAY我得到:
PuTTY X11 代理:尝试了错误的授权协议xauth: (argv):1: 无法打开显示“localhost:10.0”。
我在文档中有一系列表格。标题编号应为表 3.1、3.2、3.3 等。
然而不幸的是,有一个被跳过(即 3.1、3.3、3.4...)。也许这是因为我删除并重新插入了一个表。
我曾尝试右键单击并在标题编号上选择“更新字段”。
我也试过按Alt-F9并查看代码。似乎没有什么不妥。
有没有人对如何调试这个有任何想法?
我曾经在 VSCode 调试侧栏中的“断点”部分下看到一个名为“未捕获的异常”的复选框,就像这张图片中的那样(看图片的左下角)
但我再也看不到它了,我也不记得它是什么时候消失的。我现在使用的是 VSCode 1.37.1。
是否有新的设置来显示/隐藏它?
我得到了一台笔记本电脑来修复 - 它是“随机滚动文档”。我几乎可以肯定这是键盘中的错误连接,导致向下翻页。有没有程序可以用来监视键盘上的所有按键操作,看看是否是这种情况?
我正在尝试在基于 Debian 的嵌入式 PowerPC 系统上安装 Valgrind。我已经成功地交叉编译了它,但现在它抱怨找不到调试信息。我已将相关共享对象的未剥离副本放入文件系统,并将此目录告知 Valgrind,但它仍然无法正常工作。
调用:
root@192.168.0.200:/# /root/valgrind/bin/valgrind --extra-debuginfo-path=/root/valgrind/usr/lib/debug /path/to/my_program -log
==6000== Memcheck, a memory error detector
==6000== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==6000== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info
==6000== Command: /path/to/my_program -log
==6000==
valgrind: Fatal error at startup: a function redirection
valgrind: which is mandatory for this platform-tool combination
valgrind: cannot be set up. Details of the redirection are:
valgrind:
valgrind: A must-be-redirected function
valgrind: whose …Run Code Online (Sandbox Code Playgroud) 我需要整理我的调试信息。我有一个笑脸:D,但有人建议使用独角兽。有一些关于 ASCII 独角兽的不错的资源(例如http://www.ascii-art.de/ascii/uvw/unicorn.txt),但这些资源都太大而无法放在一行中。我应该如何写一个小的 ASCII 独角兽?
可以重复上次测试,但在调试模式下?
运行最后一个测试时(即使我上次在调试模式下手动运行),它将在没有调试模式的情况下运行。
我想也许我可以将快捷键映射到底层命令。但是,使用命令窗口时,我看不到建议可以完成的命令。


我的 bash shell 有时需要相当长的时间才能启动,可能是由于我的各种点文件中发生了很多事情(例如 .bash_profile 等)。有没有办法正确记录 bash 启动过程,包括函数调用、每个任务花费的时间等等?我想确定初创公司是否有任何特定部分比其他部分慢。
我是一个拱形 4.9.8-1 系统。我想为 gpu passthrough 安装 linux-vfio 内核并解决 IOMMU 组错误的问题。
尝试安装 linux-vfio 内核时,由于缺少密钥,出现以下错误。
$ yaourt -S linux-vfio
.
.
.
==> Verifying source file signatures with gpg...
linux-4.9.tar ... FAILED (unknown public key 79BE3E4300411886)
patch-4.9.8 ... FAILED (unknown public key 38DBBDC86092693E)
Run Code Online (Sandbox Code Playgroud)
我一直在尝试用 gpg 导入一个密钥,现在我尝试了很多不同的东西,但我一直遇到同样的错误,我用 pacman 安装了 gnupg 包。
$ gpg --recv-key 79BE3E4300411886
gpg: keyserver receive failed: Connection refused
$ gpg --keyserver pgp.mit.edu --recv-keys 79BE3E4300411886
gpg: keyserver receive failed: Connection refused
Run Code Online (Sandbox Code Playgroud)
检查服务器是否可用
$ gpg-connect-agent --dirmngr
> keyserver --resolve hkp://pool.sks-keyservers.net
S # …Run Code Online (Sandbox Code Playgroud)