gdb

Posted by 夏泽民

https://www.cnblogs.com/sunsky303/p/12957078.html Golang程序调试工具介绍(gdb vs dlv) 通过log库输出日志,我们可以对程序进行异常分析和问题追踪。但有时候,我也希望能有更直接的程序跟踪及定位工具能够帮助我们更方便快捷的追踪、定位问题,最直观的感觉还是使用调试器。Linux平台下,原生的C/C++程序,我们往往使用gdb进行程序调试,切换到Golang,我们同样还是可以使用gdb进行调试。同时我们还可以使用golang实现的调试器dlv进行调试。以下内容是我对gdb以及dlv使用及对比总结 安装 go get github.com/go-delve/delve/cmd/dlv 准备工作 为展示整个调试过程,准备了一个演示项目GoDbg,整个目录结构如下所示



ZEND_HASH_FOREACH_KEY_VAL php扩展hashtable操作

Posted by 夏泽民

php7的遍历数组和php5差很多,7提供了一些专门的宏来遍历元素(或keys)。宏的第一个参数是HashTable,其他的变量被分配到每一步迭代:



Container

Posted by 夏泽民

https://github.com/mylxsw/container Container 是一款为 Go 语言开发的运行时依赖注入库。Go 语言的语言特性决定了实现一款类型安全的依赖注入容器并不太容易,因此 Container 大量使用了 Go 的反射机制。如果你的使用场景对性能要求并不是那个苛刻,那 Container 非常适合你。



zval 替代char 解决返回字符串内存泄漏问题

Posted by 夏泽民

接收参数 不像在用户空间的代码那样,一个内部函数的参数实际上不会声明在函数的头部。相反,参数列表的引用会传递到每个函数中 – 不管参数传递了没有 – 接下来函数就可以让Zend Engine把这些参数变成可以使用的变量。



zend_mm_heap corrupted

Posted by 夏泽民

PHP7+Swoole开启opcache,运行时出现zend_mm_heap corrupted。这个问题的主要原因是PHP7增加了一个优化项,如果PHP代码中一个数组只声明一次,并且没有对数据进行修改操作。PHP7会将此数组转为immutable类型,此数组仅作为只读。



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required