标签: debugging

我怎样才能让 cron 现在运行一项工作,以进行测试/调试?不改变时间表!

我有一个计划每天运行的 cron 作业,除了更改计划之外,还有没有其他方法可以立即对命令进行测试运行以查看它是否按预期工作?

编辑:(从评论中)我知道在 shell(我的 shell)中输入命令时该命令可以正常工作,但是我想知道当 cron 运行它时它是否可以正常工作,它可能会受到 ENV 或特定于 shell 的东西的影响(~扩展) 或所有权和许可的东西或...

cron debugging

247
推荐指数
6
解决办法
46万
查看次数

如何调试 bash 脚本?

我在 bash 中遇到了一些关于错误和意外行为的脚本问题。我想调查问题的原因,以便我可以应用修复程序。有没有办法可以为 bash 开启某种“调试模式”,以获取更多信息?

bash debugging

183
推荐指数
8
解决办法
31万
查看次数

Linux 网络故障排除和调试

Linux 和 Unix 用户有时会面临各种网络问题。这些问题中的许多问题都在此处和其他一些故障排除论坛上进行了介绍,但它们非常具体,并包含许多其他技术信息,有时很难理解错误系统行为的要点和真正原因。

通过提出这个问题,我的目的是创建一个社区 wiki页面,它可以概括我们的网络故障排除和调试经验。我希望 Linux 和 Unix 用户可以使用此页面更容易地识别和解决(“分而治之”)他们的网络问题。

此页面的父页面应该是 诊断问题的最佳实践。但在这里我们应该专注于从用户空间和内核空间解决网络问题

我想,如果你:

  1. 分享有关使用一些出色的网络诊断工具的信息以及具体的使用示例和网络错误示例,它们有助于捕捉。
  2. 分享与此主题相关的优秀网络教程的链接
  3. 讲述可以解决某些网络问题的通用方法或秘诀
  4. 共享有关用于网络调试和故障排除的工具集的信息

它非常适合这个主题。


我将从分享 varios诊断工具的链接和12 年前的简单教程开始。此外,archlinux 教程似乎有关于我们主题的实际信息。为了深入了解 linux 网络,我们绝对需要访问Linux Networking-HOWTO

linux networking debugging troubleshooting

88
推荐指数
3
解决办法
12万
查看次数

GDB如何跨步、跨步、跨步?

help在 GDB 时打字,但没有找到任何关于进入、跨步和退出的信息。我在_start( break _start)的汇编程序中放置了一个断点。之后我打字next,它完成了调试。我猜是因为它完成了_start并且没有按照我的意愿进入

任何人都可以提供帮助?

programming debugging gdb

71
推荐指数
2
解决办法
13万
查看次数

我们可以从 elf 二进制文件中获取编译器信息吗?

有没有机会知道在 Linux 下如何构建二进制文件?(和或其他 Unix)

编译器、版本、时间、标志等...

我查看readelf并找不到太多内容,但可能还有其他方法可以分析二进制代码/部分等...

你知道怎么提取吗?

linux debugging compiler executable elf

62
推荐指数
5
解决办法
8万
查看次数

`git pull` 是怎么吃掉我的作业的?

我感觉就像校长办公室里的一个孩子,解释说我的作业在到期前一天晚上被狗吃掉了,但我正盯着脸上的一些疯狂的数据丢失错误,我无法弄清楚它是怎么发生的。我想知道 git 怎么会吃掉我的整个存储库!我已经多次将 git 放入绞拧器中,它从不眨眼。我用它将 20 Gig Subversion 存储库拆分为 27 个 git 存储库,并将 foo 过滤分支出来以解决混乱问题,并且它从未在我身上丢失过一个字节。reflog 总是可以依靠的。这次地毯不见了!

从我的角度来看,我所做的只是运行git pull,它破坏了我的整个本地存储库。我的意思不是说它“弄乱了签出的版本”或“我所在的分支”或类似的东西。我的意思是整件事都没有了

这是事件发生时我的终端的屏幕截图:

事件截图

让我带你了解一下。我的命令提示符包含有关当前 git 存储库的数据(使用 prezto 的 vcs_info 实现),因此您可以查看 git 存储库何时消失。第一条命令就够正常了:

  » caleb » jaguar » ~/p/w/incil.info » ? ? zend ? »
??? git co master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
Run Code Online (Sandbox Code Playgroud)

在那里你可以看到我在 'zend' 分支上,并检查了 master。到现在为止还挺好。您将在我的下一个命令之前的提示中看到它成功切换了分支:

  » caleb » jaguar » ~/p/w/incil.info » ? ? master ? »
??? git pull
remote: Counting objects: …
Run Code Online (Sandbox Code Playgroud)

debugging git data-recovery

53
推荐指数
1
解决办法
3553
查看次数

如何知道程序在linux中卡在哪里?

我在我的 ubuntu 服务器上运行以下命令

root@slot13:~# lxc-stop --name pavan --logfile=test1.txt --logpriority=trace
Run Code Online (Sandbox Code Playgroud)

它似乎无限期地挂起。每当这发生在 AIX 上时,我只是用来获取违规进程的 PID 并说

$ procstack <pid_of_stuck_process>
Run Code Online (Sandbox Code Playgroud)

它用于显示进程的整个调用堆栈。procstack在 linux/ubuntu 中是否有任何等价物?

linux process debugging

52
推荐指数
4
解决办法
13万
查看次数

正在运行的应用程序以“分段错误”结束

我有一个命令行应用程序,当运行时它没有做它应该做的事情,并且在某个时刻留下消息:

Segmentation fault
Run Code Online (Sandbox Code Playgroud)

这是什么意思?我该怎么办?

debugging segmentation-fault

47
推荐指数
2
解决办法
17万
查看次数

如何查看在某个 bash 实例中执行的确切命令行?

我有一个长时间运行的bash实例(在screen会话内),它在循环内执行一组复杂的命令(每个循环执行管道、重定向等)。

长命令行写在终端内 - 它不在任何脚本内。现在,我知道 bash 进程 ID,并且我有 root 访问权限 - 我怎样才能看到在其中执行的确切命令行bash

例子
bash$ echo $$
1234
bash$ while true ; do \
    someThing | somethingElse 2>/foo/bar | \
    yetAnother ; sleep 600 ; done
Run Code Online (Sandbox Code Playgroud)

在另一个 shell 实例中,我想查看在 PID 1234 中执行的命令行:

bash$ echo $$
5678
bash$ su -
sh# cd /proc/1234
sh# # Do something here that will display the string  \
   'while true ; do someThing | somethingElse 2>/foo/bar | \
    yetAnother ; sleep …
Run Code Online (Sandbox Code Playgroud)

bash process debugging

34
推荐指数
2
解决办法
7507
查看次数

如何在 Linux 中查看核心文件以进行调试?

我想在调试程序时查看核心文件的内容。如何查看核心文件的内容?

linux debugging core-dump

29
推荐指数
2
解决办法
14万
查看次数