问题标签 [carp]

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.

0 投票
1 回答
248 浏览

perl - 覆盖 Perl 中 carp 模块的 croak cluck 承认 carp

我知道如何覆盖内置函数,perl并且我已经覆盖die warn say并且不能被覆盖,我已经将它绑定到我的日志框架的句柄printprintf

覆盖示例warn

现在有没有办法croak cluck confess carpcarp模块中覆盖Perl

0 投票
2 回答
201 浏览

exception - perl 5 鲤鱼的 raku 类似物是什么?

默认情况下,Raku 的 "die" 报告 "die" 所在的行号,如果你想要调用上下文的行号,比如 perl 5 的 "carp" 怎么办?

0 投票
1 回答
163 浏览

perl - 如果每个人都使用的调试代码的机制覆盖了它,你如何捕获一个有问题的 sig die 处理程序?

假设您使用一个 cpan (或其他外部)模块,就像我们这里的虚构模块一样Stupid::CPAN::Module::OfSatan

现在稍后在你的代码中你有一些非常无辜的东西,

这将触发您的错误信号处理程序。你会想知道那个有问题的信号处理程序是在哪里定义的,所以你会做一些合乎逻辑的事情,比如 insert a Carp::Always

Carp::Always然后将覆盖错误的信号处理程序,您的代码将神奇地工作。如何调试引入错误信号处理程序的代码?

0 投票
1 回答
258 浏览

perl - 如何编写不会在 eval 块中触发的 SIG{__DIE__} 处理程序?

根据perldoc -f die, 哪些文件$SIG{__DIE__}

虽然这个特性只在你的程序即将退出之前运行,但目前还不是这样:这个$SIG{__DIE__}钩子目前甚至在 evaled 块/字符串中也被调用了!如果希望钩子在这种情况下什么都不做,请将die @_ if $^S;其作为处理程序的第一行(参见$^Sperlvar)。因为这会促进远处的奇怪动作,所以这种违反直觉的行为可能会在未来的版本中得到修复。

因此,让我们采用一个基本的信号处理程序,它将触发eval { die 42 }

我们通过以下方式确保安全

现在这不会用 触发eval { die 42 },但是当相同的代码在BEGIN {}像这样的块中时它会触发

这可能看起来晦涩难懂,但它是相当真实的,因为您可以看到它在此处的此方法中使用(require失败并被 an 捕获eval,或者在我的情况下特别是此处Net::DNS::Parameters。你可能认为你也可以赶上编译器阶段,像这样,

这将适用于上述情况,但可惜它不适用于其中包含 BEGIN 语句的文档的要求,

有没有办法解决这个问题并编写一个$SIG{__DIE__}不干扰的处理程序eval

0 投票
0 回答
43 浏览

linux - ucarp 选择主模式时 ARP 错误

问题是:两个带有 RHEL 版本 7.9 的虚拟主机,并且 IP 在同一子网 (24):abc43 和:abc143。我正在尝试用 Ucarp 分配虚拟 IP abc243,问题是这两个 ucarp 进程都以 MASTER 模式启动,将虚拟地址复制到两台机器上。调用ucarp的方法:

和标准输出结果(在两台机器上):

我认为在选择主/备份过程(接近启动)期间,另一台服务器可能收到格式错误的 arp:

似乎每台服务器都分配了所需的虚拟 IP abc243 并发送有关该 ip abc243 的 ARP 请求,将其虚拟 IP 作为发件人的地址。而且这样的请求没有回复,所以每个服务器都假设它必须是一个主服务器。
我想,问题出在这个 ARP 请求上,但我不知道主要原因是什么。我试图处理 rp_filter 和/或 ucarp 的选项和/或路由,但仍然没有成功。现在我已经坚持下去了,特此请求你的帮助。


来自 Epel repo 的RHEL 7.9 Ucarp:1.5.2
没有防火墙
SELinux Permissive

问候