标签: debugging

你如何处理间歇性的错误?

脚本

你有几个错误报告都显示同样的问题.他们都是神秘的,有关问题如何发生的类似故事.您按照步骤操作但不能可靠地重现问题.经过一些调查和网络搜索,你怀疑可能会发生什么,你很确定你可以解决它.

问题

遗憾的是,如果没有可靠的方法来重现原始问题,您无法验证它是否真正解决了问题,而不是完全没有任何影响或加剧和掩盖真正的问题.您可能无法修复它,直到它每次都可重现,但这是一个很大的错误而不修复它会导致您的用户出现很多其他问题.

你如何验证你的变化?

我认为对于任何设计软件的人来说,这是一个非常熟悉的场景,所以我确信有很多方法和最佳实践来解决这样的错误.我们目前正在研究我们项目中的其中一个问题,我花了一些时间来确定问题,但无法证实我的怀疑.一位同事正在测试我的修复,希望"没有崩溃的一天运行"等同于"它是固定的".但是,我更喜欢更可靠的方法,我认为这里有丰富的经验.

debugging validation

33
推荐指数
4
解决办法
7637
查看次数

调试haskell代码的好方法是什么?

我已经使用了ghci调试器,但是如果它与文本编辑器有点集成以简化设置断点的过程,我会更喜欢.它可能不应该严格评估每个可见变量,但至少可以简化查看本地状态的过程.

我最近发现了跟踪功能,它允许从其他困难的地方调试打印输出.

debugging haskell ghc

33
推荐指数
3
解决办法
8181
查看次数

以编程方式转储调用堆栈

寻找一种方法,以便在遇到一段代码时以编程方式转储调用堆栈和.net Win Forms应用程序.它之前我没有遇到过但会节省一些调试时间.

更新:忘记添加,这将增加应用程序的开销,即它会大大减慢它的速度.

.net c# debugging

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

如何在Ubuntu中以eclipse身份调试应用程序?

我正在使用libpcap编程应用程序.当我在正常模式下调试应用程序时,pcap无法获取网络设备.似乎我必须在root中调试应用程序.如何在root中调试应用程序?我有root密码.我认为eclipse有这样的选项,可以为调试应用程序添加root,但我不知道该怎么做.请帮忙.

c eclipse debugging root libpcap

33
推荐指数
2
解决办法
3万
查看次数

你如何用sed"调试"正则表达式?

我正在尝试使用正则表达式sed.我用kiki测试了我的正则表达式,这是一个用于测试regexpd的gnome应用程序,它在kiki中运行.

date: 2010-10-29 14:46:33 -0200;  author: 00000000000;  state: Exp;  lines: +5 -2;  commitid: bvEcb00aPyqal6Uu;
Run Code Online (Sandbox Code Playgroud)

我想author: 00000000000;什么都不替换.所以,我创建了正则表达式,当我在kiki中测试它时有效:

author:\s[0-9]{11};
Run Code Online (Sandbox Code Playgroud)

但是当我测试它时不起作用sed.

sed -i "s/author:\s[0-9]{11};//g" /tmp/test_regex.txt
Run Code Online (Sandbox Code Playgroud)

我知道正则表达式有不同的实现,这可能是问题所在.我的问题是:我如何至少尝试"调试"sed发生的事情?为什么不起作用?

regex linux debugging sed

33
推荐指数
4
解决办法
5万
查看次数

document.cookie究竟是如何工作的?

如果我让Chrome document.cookie通过进入控制台并输入document.cookie;它来给我看,我会告诉我,说:

"name=John; gender=male";

但是如果我输入,比方说,document.cookie = 5;它所做的只是添加5;到字符串的开头,所以我得到:

"5; name=John; gender=male";

如果我尝试document.cookie = null;那么它甚至什么都不做.

怎么会这样?这是一个变量,不是吗?那么为什么赋值运算符不应该以它应该的方式工作呢?它实际上只是一些语法糖而不是一个真正的变量?如果是这样,糖究竟是什么?

javascript debugging google-chrome javascript-debugger

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

如何让PHP显示错误?(我添加了ini_set和error_reporting,但只提供了500个错误)

所以,我当前的网页上确实没有任何错误,但我希望能够在弹出时看到错误,而不是HTTP 500错误页面.我google了一下,并认为添加这两行将解决所有问题.

ini_set('display_errors', 'On');
error_reporting(E_ALL);
Run Code Online (Sandbox Code Playgroud)

注意:我无法访问php.ini文件,因为我正在使用我的学校帐户的服务器.

所以我在页面顶部介绍了一个bug(在$ buggy之后没有分号):

<?php 
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$buggy

$x = 4 + 2;
...
Run Code Online (Sandbox Code Playgroud)

但是,我只是收到服务器错误:

"该网站在检索http://mywebpage.com/时遇到错误.可能是因为维护失败或配置不正确."

有任何想法吗?

编辑:

我重新配置了我的代码:

<?php 
include_once 'database/errorSettings.php';
?>
<?php 

$buggy // whoops
$x = 4 + 2;
...
Run Code Online (Sandbox Code Playgroud)

errorSettings.php如下:

<?php
    ini_set('display_errors', 'On');
    error_reporting(E_ALL);
?>
Run Code Online (Sandbox Code Playgroud)

但它仍然无效...错误的重新配置方式?

html php debugging

33
推荐指数
3
解决办法
13万
查看次数

Laravel 5 - env本地调试true没有显示错误

我正在尝试为我的应用启用调试,但看起来我没有任何反馈.

环境设置为本地(在.env文件中),如果我运行

php artisan env
Run Code Online (Sandbox Code Playgroud)

我明白了

Current application environment: local
Run Code Online (Sandbox Code Playgroud)

我本地环境的调试配置设置为 true

return [

    'debug' => true,
Run Code Online (Sandbox Code Playgroud)

此外,如果我在我的主配置文件(配置文件夹中的app.php)中设置,debug = true我仍然有反馈说代码中有错误.

如果代码中有错误,我只有一个空页面(对于debug = false)

我错过了什么?

php debugging env laravel laravel-5

33
推荐指数
2
解决办法
6万
查看次数

退出Python调试器ipdb

我经常使用ipdb,只是跳转到一段孤立的代码,即很难编写一个使用它的真实脚本.相反,我用模拟编写了一个最小的测试用例并跳转到它.

工作流程的示例:

def func():
   ...
   import ipdb
   ipdb.set_trace()
   ...

def test_case():
    ...
    func()
    ...
Run Code Online (Sandbox Code Playgroud)

然后,调用

py.test test_file.py -s -k test_case
Run Code Online (Sandbox Code Playgroud)

现在,通常我只检查一个或两个变量,然后想要退出.更改代码并重新执行.

我该如何戒烟?手册说q退出调试器.它(真的)没有.在调试器实际终止之前,您必须退出几次.Ctrl-C和Ctrl-D的相同行为(多次击中Ctrl-D的挫折最终也会退出终端).

是否有一种强制退出的聪明方法?这个工作流程是否合理?这样做的标准方法是什么?

python debugging workflow exit ipdb

33
推荐指数
4
解决办法
1万
查看次数

重定向Console.Write ...调试时Visual Studio的输出窗口的方法

Visual Studio中控制台应用程序项目,我想在调试时将输出重定向到输出窗口.Console

debugging console-application visual-studio

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