我正在使用pdepend测试我的库,并且一些函数具有极高的复杂性.我刚刚意识到它来自三元运算符,但我不确定为什么.
具有如下功能:
function test($a) {
return $a > 10 ? 5:20;
}
Run Code Online (Sandbox Code Playgroud)
pdepend返回5的复杂度(npath).为什么有5条不同的路径?我只看到2.
具有如下功能:
function test($a) {
if($a > 10)
return 5;
else
return 20;
}
Run Code Online (Sandbox Code Playgroud)
npath复杂度为2.这是有道理的.
编辑:好的,我看看另一个问题:PMD - 使用三元运算符的NPath复杂度非常高(?
它是算法的一部分..但是,该函数只有2条可能的路径.该算法对我没有意义.节点数不反映路径数,并且任意将值加2.
好的,我在 Ubuntu 的命令行上运行一个 PHP 应用程序,它以“分段错误(核心转储)”结尾。
我如何从这里去调试它?我很确定没有内存泄漏,因为我已经用 get_memory_usage() 检查过了。
编辑:好的,正如 Brendan 和 Ulricht 所解释的,我尝试了 gdb。这根本不是我的环境,所以对即将到来的新手问题感到抱歉。
我在 gdb 下运行我的代码并得到了段错误。这是前 22 行。
(gdb) bt
#0 0x00000000006f5d36 in ?? ()
#1 0x00000000006f7625 in ?? ()
#2 0x00000000006f7b68 in zend_parse_parameters ()
#3 0x0000000000610584 in zif_array_rand ()
#4 0x00000000006dd9bb in dtrace_execute_internal ()
#5 0x000000000079da15 in ?? ()
#6 0x0000000000717748 in execute_ex ()
#7 0x00000000006dd8b9 in dtrace_execute_ex ()
#8 0x000000000079e060 in ?? ()
#9 0x0000000000717748 in execute_ex ()
#10 0x00000000006dd8b9 in dtrace_execute_ex ()
#11 0x000000000079e060 in ?? …Run Code Online (Sandbox Code Playgroud) 这是phpunit说的:
1) Asgard\Entity\Tests\EntityTest::testToArray
Failed asserting that two arrays are equal.
--- Expected
+++ Actual
@@ @@
Array (
'id' => null
'title' => 'Test Title'
'content' => 'Test Content'
'published' => 2015-03-04T11:19:50+0000
'comments' => Array (
0 => Array (
'id' => null
'content' => 'foo'
'published' => 2015-03-04T11:19:50+0000
'another_property' => null
'news' => null
)
1 => Array (
'id' => null
'content' => 'bar'
'published' => 2015-03-04T11:19:50+0000
'another_property' => null
'news' => null
)
2 => Array ( …Run Code Online (Sandbox Code Playgroud) 我正在尝试做一个简单的拖动脚本.这个想法是在鼠标停止时保存位置,在鼠标移动时更新视图,在鼠标移动时停止.问题,mouseup事件无法正常工作.
看代码:
var target = $('a')
var pos = 0;
var dragging = false;
$(document).mousedown(function(e) { pos=e.pageX; dragging = true })
$(document).mouseup(function() { dragging = false })
$(document).mousemove(function(e) {
if(dragging){
target.css('left', e.pageX-pos);
}
}) ?
Run Code Online (Sandbox Code Playgroud)
为什么mouseup与"a"标签一起使用:http: //jsfiddle.net/leyou/c3TrG/1/
为什么mouseup无法使用"img"标记:http: //jsfiddle.net/leyou/eNwzv/
只是尝试水平拖动它们.
ie9,ff和chrome也有同样的问题.Windows 7的
我想在值错误时强制光标返回其先前的输入.这是我使用的脚本的更简单版本:
$('input:first-child').blur(function(e){
console.log('here');
$('input:first-child').focus();
});
Run Code Online (Sandbox Code Playgroud)
当我点击另一个元素进行聚焦时它可以工作,但是当我点击主体或另一个div元素时却没有.为什么?我有一个jsfiddle案例:http://jsfiddle.net/leyou/Zabn4/37/
编辑:我在Chrome/Win7上测试,但使用Firefox看起来更糟糕.它完全忽略了焦点()
当 Next.js 上发生服务器错误时,调用堆栈会为我提供发生错误的组件,但除此之外它没有提供任何帮助。
例如,在pages/index.jsI 中包含一个名为Test. 此组件包括另一个名为 的组件Test2,其中发生错误。
Next.js 会告诉我在 中发生错误Test2,但不会提及Test或pages/index.js。因此,由我来猜测Test2包含在何处。
看这里:
所有的/node_modules/react-dom/cjs/电话都没有帮助。
那么当 Next.js 发生错误时,如何获得更有用的调用堆栈?
也许这里有人会对这件事做出回应,这只会让我疯狂.
为了简单起见,我正在做一种代理.只要它收到某些东西,它就会将所有内容转发给服务器,然后发回响应.因此,有一个套接字始终在端口4557上侦听客户端,并且对于每个传入连接,在随机端口上创建一个新套接字以连接到服务器端口4556.
客户端<==>代理<==>服务器
此外,还有另一个套接字,它被实例化并监听来自服务器的请求并转发到相应的客户端.
这是一个例子:
到目前为止,在我的测试中,我使用一个简单的python脚本向代理发送一个唯一的tcp数据包,以及一个显示接收数据并回显的转储服务器.
所以问题是当关闭与代理的连接时,也应该用"sock.close()"关闭与服务器的连接.然而它似乎完全被忽略了.套接字保持为ESTABLISHED.
现在关于代码.
几点说明.
第一个类是TCPListenerThread.它只是侦听特定端口并实例化代理(每个Client => Server couple和Server => Client couple)并转发它们的连接.
class TCPListenerThread(StoppableThread):
def __init__(self, tcp_port):
StoppableThread.__init__(self)
self.tcp_port = tcp_port
self.sock = socket.socket( socket.AF_INET, # Internet
socket.SOCK_STREAM ) # tcp
self.sock.bind( (LOCAL_ADDRESS, self.tcp_port) )
self.sock.listen(1)
def runCallback(self):
print "Listen on "+str(self.tcp_port)+".."
conn, addr = self.sock.accept()
if isFromDTN(addr):
tcpProxy = getProxyFromPort(tcp_port)
if not tcpProxy:
tcpProxy = TCPProxy(host, …Run Code Online (Sandbox Code Playgroud)