问题标签 [trepan]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gdb - ddd 在启动时挂起
之前有人问过问题,我看到关于 ddd 新闻组的错误报告,但没有一个建议的解决方案对我有用。
它出现了,但是当您尝试执行诸如打开文件之类的操作时,它会挂起消息“等待 GDB 准备好”。
其他人也报告了一个关键事实,即它对某些用户有效,而对其他用户无效。我已经比较了环境,找不到任何显着差异。任何建议将不胜感激。
bash - bashdb:我可以检查流经管道的数据吗?
我正在尝试调试涉及以下形式的命令的 bash 脚本:
我可以使用命令在 bashdb 中对其进行调试,该s
命令执行以下操作:
即它允许我一个一个地运行管道中的命令。逻辑表明它必须因此将管道的内容存储在某个地方,以便当我s
再次键入时它可以将其输入到下一个命令中。如何让 bashdb 显示这些数据?
linux - 如何使断点在 bashdb 中工作
我按照本手册来使用 bashdb: http: //archive09.linux.com/articles/153383.html#commentthis 当我使用 bashdb 来 bt 脚本时:
这里是调试的细节: kaiwii@ubuntu:~/shell_test$ bash --debugger ./fibonacci.sh bashdb debugger, release 4.2-0.6
我的问题是当我使用命令时,使用命令后继续,break fibonacci,它确实在方法的开头停止,fibonacci 而是退出脚本。
linux - bashdb 启动错误:bashdb/lib/setshow.sh:第 91 行:/dev/pts/2:权限被拒绝
我正在尝试在 CentOS 4.1 上使用 bashdb(不幸的是我无法选择不同/更新的操作系统)。我安装了 bash 4.2 然后 bashdb 4.2-0.8。没有来自 configure、make、make 检查或 make install 的抱怨:一切看起来都很好。
但是尝试将 bashdb 用作 'bash --debugger myscript' 或 'bashdb myscript' 总是会出现此错误:
setshow.sh 中没有第 91 行,在 /dev 的目录列表中也没有 /dev/pts。
任何如何进行的建议将不胜感激。我正在处理一个乱七八糟的 shell 脚本,而且我对 bash(或 Linux)并不感兴趣,并且希望进行比 set -x 和 echo 语句更亲密的调试。
谢谢
为了完整起见,我应该按照 konsolebox 的要求添加我试图用作 bashdb 测试的 bash 脚本,尽管任何代码都会出现“权限被拒绝”问题,并且可以按照 Red Cricket 的建议使用 sudo 来解决。这是脚本:
python - 在 Ubuntu 14.04 上为 Python 3 安装 Trepan 调试器
我正在使用带有 Python 版本 2.7.6 的 Ubuntu 14.04。我最近使用pyenv
. 现在我想测试一些 Python 3 的调试器,我trepan-0.2.8-py3.3.egg
从python3-trepan 项目页面下载。
然后我跑了pyenv global 3.4.2
and easy_install trepan-0.2.8-py3.3.egg
,这给了我以下错误:
更新:
该问题似乎与使用安装 Python 3 无关pyenv
:我尝试了以下方法:
- 禁用
pyenv
sudo apt-get install python3 python
sudo apt-get install python3-setuptools
sudo easy_install-3.4 trepan-0.2.8-py3.3.egg
这给了我同样的错误:
bash - 安装 bashdb 后,bash --debugger 无法在没有参数的脚本上使用 bash 4.3
我安装bashdb
在使用 bash 4.3 的 fedora 21 上。我需要运行 using--debugger
因为我想$0
正确设置为脚本的名称而不是bashdb。
但是脚本只是执行,没有调试会话。另一方面运行:
工作正常。
我究竟做错了什么?
perl - 精确的 Perl 位置,例如 B::Deparse
Perl 中一个长期存在的问题是如何以比行号更精细的粒度来识别位置。(点击链接获取更多信息。)这个问题是关于如何获得的。
最有希望的方法是使用正在考虑的 Perl 操作码地址并解析围绕它的语句。在 a 子例程的级别,B::Deparse将根据代码引用重新创建 Perl。所以理想的是修改B::Deparse以允许您提供提供的操作以开始解析。如果做不到这一点,它可以改为解析封闭的子例程,显示遇到的每个语句的操作码地址。有关此示例,请参见下面的代码。
B::Concise可以显示子程序的操作码反汇编。在其反汇编输出中,它给出了地址,并且它给出的地址与返回的地址相匹配,例如,由Devel::Callsite 返回。
问题是,在按如下方式检测 B::Deparse 之后,它给出的 OP 地址与B::Concise或Devel::Callsite给出的地址不匹配。下面给出的输出显示了这一点。
我可以规范化地址,以便它们引用相对偏移量而不是绝对地址。然而,这是很多工作,很恶心,我什至不完全确定这会奏效,因为Deparse可能会通过“悲观化”或我猜是撤消优化来更改代码。
具体而言,下面是一些显示不匹配的代码。请注意,反汇编中没有显示 deparse 给出的地址。
我从运行中得到的输出是:
最后,作为鼓励人们在这里提供帮助的一种方式,如果解决了这个问题,则该解决方案可能会出现在 Perl 调试器Devel::Trepan中,并允许您在调试器内停止时可靠地知道您在哪里。
注意:编辑以使问题更清晰。
python - 获取 C python exec 参数字符串或访问评估堆栈
在我的python 调试器中,我有一种将字符串重新映射到文件名的方法,这样当您在调试器中单步执行 exec'd 函数时,您可以列出 pygmentized 行,或者通过realgud在 Emacs 等编辑器中查看它们。
因此,我希望能够在 CPython 在内部评估中停止时提取 exec 语句中的字符串。
我已经有了一种机制,可以在调用框架中回顾调用者是否为 anEXEC_STMT
,并且我可以回顾一条指令以查看前一条指令是否为 say DUP_TOP
。因此,如果我能想出一种方法来在调用时读取堆栈条目并给出评估的字符串,那么我就可以回家了。可能有一种方法可以进入 C 来获得这个,但我对 CPython 内部知识缺乏了解,并且不希望这样做。如果那里有一个包,也许我可以选择包含它。
CPython 已经提供了对函数参数和局部变量的访问,但当然,因为这是一个内置函数,所以它不会被记录为函数参数。
如果在如何做同样的事情上有其他想法,那也没关系。我觉得一个不太好的解决方案是以某种方式尝试重载或替换exec
,因为调试器可以在游戏后期引入。
我知道 CPython2 和 CPython3 在这里可能会有些不同,但是从任何一个开始都可以。
docker - 在容器中调试 bash 脚本会在主机上提供一个进程?
我启动了一个名为 pg 的容器。我想在容器中调试一个 bash 脚本,所以我在容器中安装了 bashdb。我开始了:
我回到主机,然后:
所以在容器中我看到了一个 TTY 条目console
,这是我以前从未见过的,我在ps
主机上看到了调试条目!
到底是怎么回事?
regex - BASH_REMATCH 为空
我正在尝试在 Bash 中捕获一些输入正则表达式,但 BASH_REMATCH 为 EMPTY
我的输入是:
通过调试脚本(VS Code+Bash ext),我可以看到 INPUT 字符串匹配,因为代码进入 IF 但 BASH_REMATCH 没有填充我的两个捕获组。
我上线了:
可能是什么问题?
稍后编辑
接受的答案
接受最具解释性的答案。
什么最终解决了这个问题:
bashdb/VS 代码环境导致空 BASH_REMATCH。该代码单独运行时可以正常工作。