邢栋博客
邢栋博客,Action博客,记录工作和生活中的点点滴滴
php下正则匹配大字符串失败问题
问题描述:
在使用php函数preg_match匹配大字符串的时候匹配失败,而删除一半数据,则匹配成功,
解决过程:
于是在匹配结束后,调用preg_last_error()函数,查看失败原因,返回的是6,6对应的错误原因是PREG_JIT_STACKLIMIT_ERROR,
原来当字符串太大的时候,栈空间满了,直接就出错了,于是在匹配前加一下代码
解决查找的资料
1、深悉正则(pcre)最大回溯/递归限制(https://www.laruence.com/2010/06/08/1579.html)
在使用php函数preg_match匹配大字符串的时候匹配失败,而删除一半数据,则匹配成功,
解决过程:
于是在匹配结束后,调用preg_last_error()函数,查看失败原因,返回的是6,6对应的错误原因是PREG_JIT_STACKLIMIT_ERROR,
原来当字符串太大的时候,栈空间满了,直接就出错了,于是在匹配前加一下代码
ini_set('pcre.jit', 0);
解决查找的资料
1、深悉正则(pcre)最大回溯/递归限制(https://www.laruence.com/2010/06/08/1579.html)
Mac下使用clion调试redis源码
1、先从github上下载源码
1)搜索 https://github.com/search?q=redis+clion
2)最好是选择别人配置好CMakeLists.txt的,不然自己配置也很麻烦
2、下载完成,开始配置
//选择一个想要调试的版本进行下载
wget https://github.com/htw0056/redis-3.0-annotated-cmake-in-clion/archive/master.zip
//解压
unzip redis-3.0-annotated-cmake-in-clion-master.zip
//重命名+拷贝
mv redis-3.0-annotated-cmake-in-clion-master redis-3.0
cp -R redis-3.0 redis-3.0-make
//编译
cd redis-3.0-make/src
make
3、打开clion软件,导入redis-3.0项目
1)搜索到saddCommand命令,打个断点,开启debug模式
4、进入到客户端服务器,执行sadd命令
1)进入到redis-3.0-make/src,开始执行命令
./redis-cli
sadd numbers 1 77777 xd
这个时候就打开clion软件一步一步往下走了
Mac下安装gdb证书
1、先按照csdn上面的这边文章进行添加证书,名称设为 code_gdbsign
https://blog.csdn.net/LU_ZHAO/article/details/104803399/
2、假如你的mac系统大于Mac OS X 10.14,则
vim gdb-entitlement.xml
然后执行
3、如果mac系统早于10.14,则执行以下命令即可
https://blog.csdn.net/LU_ZHAO/article/details/104803399/
2、假如你的mac系统大于Mac OS X 10.14,则
vim gdb-entitlement.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.security.cs.allow-jit</key> <true/> <key>com.apple.security.cs.allow-unsigned-executable-memory</key> <true/> <key>com.apple.security.cs.allow-dyld-environment-variables</key> <true/> <key>com.apple.security.cs.disable-library-validation</key> <true/> <key>com.apple.security.cs.disable-executable-page-protection</key> <true/> <key>com.apple.security.cs.debugger</key> <true/> <key>com.apple.security.get-task-allow</key> <true/> </dict> </plist> </pre>
然后执行
codesign --entitlements gdb-entitlement.xml -fs code_gdbsign $(which gdb)
3、如果mac系统早于10.14,则执行以下命令即可
codesign -fs code_gdbsign $(which gdb)
Mac系统实现git命令补全
标签:
git
1、先安装brew,安装过的可以忽略
2、安装bash-completion
3、系统配置
下载此文件
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
然后复制到家目录
vim ~/.bash_profile 加入以下代码
读取文件
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2、安装bash-completion
brew install bash-completion
3、系统配置
下载此文件
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
然后复制到家目录
cp xxx/git-completion.bash ~/.git-completion.bash
vim ~/.bash_profile 加入以下代码
if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi
读取文件
source ~/.git-completion.bash