我想检测应用程序执行逻辑中的错误。例如:
free()返回的地址malloc()open()open()poll()write()调用未打开写入的 fdopen()例如 open("/etc/fstab", 4)close()无效的 fd我想还有数百个。
ftrace也许该工具可以类似于或运行strace,但包含错误调用的内核日志也足够了。
近一个星期以来,我一直在尝试让 Monodevelop 启动并运行,首先是在我的 redhat 上,现在是在我的 Fedora 上。
调试器不起作用,尝试调试时出现此错误:

我尝试重新安装 Monodevelop,但它是一样的。我看过谷歌,我唯一能找到的东西是三年前的,它说这是一个错误。
这是我尝试运行的程序:
using System;
namespace ArteriumTarreDal
{
class MainClass
{
public static void Main (string[] args)
{
Console.WriteLine ("Hello World!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我正在运行 Fedora 20 x86_64 并且刚刚通过此指令和存储库安装了 Monodevelop 4.0:stackoverflow
有关 apt-get 或 yum 的安装说明,请参阅:http ://software.opensuse.org/download/package?project=home:tpokorra:mono&package=monodevelop-opt
Monodevelop 4.0 也有同样的问题:

任何人都知道这是什么错误。以及如何修复它?
编辑:我让它在 Fedora 20 x86_64 KDE 上工作,但我仍然找不到如何在 Gnome 上修复它。
编辑:我刚刚在 Monodevelop 5.4 的 Debian 7“KDE”上遇到了完全相同的问题。
有没有办法运行脚本bash,使它在执行之前打印脚本的每一行?这对我的调试非常有用......
$./myscript.sh
echo "Hello"
Hello
Run Code Online (Sandbox Code Playgroud)
我将能够准确地看到我的脚本已经走了多远,以及它在做什么。
我在 Linux 4.2.0 上,Ubuntu 14.04 的 Ubuntu Wily HWE 内核(我正在运行)。
在 MacBook 11,4 和 11,5 型号上有一个令人讨厌的错误,其中笔记本电脑实际上永远不会关闭,它们似乎到达Power down内核消息然后只是挂起而从未关闭。此错误也可能会阻止挂起和恢复。有趣的是,它不会在reboot被调用时表现出来,只有在试图停止机器时才会表现出来。
细节不那么重要,但什么是相关的是我怎么能调试这一点。有没有办法strace在内核关闭时调试或调试内核并以某种方式观察输出?我相当肯定,断电逻辑正在执行一个永远挂起的系统调用,并且由于某些奇怪的原因而没有返回。如果我能找出哪个系统调用不工作,我就可以继续找出它不工作的原因,以及具体是什么硬件导致关机失败。
是否有调试内核关闭的标准做法?我需要特殊的硬件吗?我很好地为内核编写补丁,但我什至不知道从哪里开始寻找这个问题,除非我能找到不起作用的系统调用。
当我有一个以 root 身份运行的进程时,我得到权限错误,产生一个子进程作为 www-data,然后访问一个属于 root 的目录,以及一个属于 www-data 的子文件夹,它有一个指向目录的符号链接它由 www-data 组中的用户拥有,然后具有....你得到了这个想法。我怎么知道它在这个难以置信的复杂链中哪里失败了?我得到的只是权限被拒绝
如果没有陷入这种特定情况的细节,如何开始在 unix 上调试这样的问题?
我只想说
debug_permissions.sh www-data /my/long/symlink/chain```
and I want it to go through and tell me where the terminal point is (where www-data fails to have permissions)
I know there is a tool
``` namei -l /path/```
but that isn't very helpful because it doesn't let me run as another user (or at least I don't know how)
If I run
```sudo su www-data```
I get …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 qemu 和 gdb 调试 Linux 内核。问题是 gdb 不会在断点处停止。我搜索了一下,发现关闭 kASLR 可能会有所帮助,因为 kASLR 会混淆 gdb。
-- 在客户机上安装该内核。
+- 在来宾上安装该内核,通过在内核命令行中添加“nokaslr”来关闭 KASLR。
不幸的是,我不知道将 nokaslr 添加到命令行意味着什么以及执行此操作的方法。任何想法,将不胜感激。
在 bash 脚本中,我有一个log()在多个地方使用的logs()函数,以及一个将大量行转移到log(). 当我运行该脚本的部分set -x,显然内的所有命令logs()和log()被跟踪了。
我想定义logs()并且log()至少他们的内容,最多甚至他们的呼叫被禁止set -x输出。
有大量网站会尝试从您的 IP 地址推断出您的位置。例如:https: //nordvpn.com/what-is-my-ip/。
这对于调试 VPN 非常方便 - 如果我访问这些站点之一并且该位置对应于报告的服务器位置,而不是我实际所在的位置,那么我有理由确定 VPN 正在工作。
我希望能够从命令行使用这样的工具,但我无法操作复杂的网络浏览器。存在这样的工具吗?
无论如何,我使用OpenVPN运行 Gentoo ,我的提供商是Private Internet Access。但我希望有一个合理的跨平台解决方案。
我想perf在 Renesas 目标上使用,我配置了 yocto“local.conf”,如本链接所示。
#avoid stripping binaries
INHIBIT_PACKAGE_STRIP = "1"
#add the debug information
EXTRA_IMAGE_FEATURES= "debug-tweaks tools-debug dbg-pkgs tools-profile"
#format the debug info into a readable format for PERF
PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'
Run Code Online (Sandbox Code Playgroud)
perf正在工作,但我需要监视需要使用的上下文切换perf timechart以及依赖于性能事件的其他命令,但这些命令找不到此路径 "/sys/kernel/debug/tracing/events" 。
我应该怎么做才能用我的内核编译这个文件夹及其文件?
我正在 Unix/Linux 平台上寻找这样一种工具,它可以实现:
例如:
#include <stdio.h>
int square(int x) { return x*x; }
int main(void) {
square(2);
}
Run Code Online (Sandbox Code Playgroud)
当我运行这个程序时,它会打印出来
我知道在gdb某种程度上可以做到这一点,或者valgrind他们都没有完全按照我的意愿去做。我只是想知道是否存在这样的工具?谢谢。
debugging ×10
linux ×3
bash ×2
c ×1
control-flow ×1
embedded ×1
fedora ×1
function ×1
gdb ×1
linux-kernel ×1
mono ×1
openvpn ×1
perf ×1
permissions ×1
programming ×1
qemu ×1
shell-script ×1
strace ×1
trace ×1
tracing ×1
ubuntu ×1
vpn ×1
yocto ×1