Recent Posts
-
September 22, 2020
Windows10修改键盘映射禁用某个按键
好像是之前进过水,笔记本的win键出现问题了,不停的狂跳,要么一直处于key down状态,键盘上也没法输出了,还好按下大小写锁定后, 用shift + 可以输入密码登录。之前拆过笔记本想把键盘拿出来看一下,最后没成功,联想的都是一次性不可逆的塑料钉固定,拆了没法再 重新固定了,搞的键盘松松垮垮的。今天发现笔记本的键盘按键键帽也是可以直接扣出来的,直接用手往自己这个方向揭起来就可以了,但 只能看到键盘的软胶电路,也没法看清楚底下是怎么接触的。本来是想修改一下 https://github....
-
September 21, 2020
Gdb的ptype命令查看struct结构的各个子成员的内存布局
比较新的gdb的ptype命令支持/o选项,打印结构的内存布局了,类似pahole命令吧(gdb) help ptypePrint definition of type TYPE.Usage: ptype[/FLAGS] TYPE | EXPRESSIONArgument may be any type (for example a type name defined by typedef,or "struct STRUCT-TAG" or "class CLASS-NAME" or "u...
-
September 04, 2020
编译php 7.2 Configure配置 With Libzip时报告off_t错误
./configure –enable-zip –with-libzip 使用自己编译的libzip-1.7.3时,出现下面这个错误checking size of off_t... 0configure: error: off_t undefined; check your library configuration看网上介绍应该是php的配置脚本有问题,它的实际错误其实是ld 找不到libzip.so 文件吧,不知道php7.4有没有这个问题,上次编译php-7.4时用是系统l自带的i...
-
August 05, 2020
Php的swoole和grpc扩展一起使用时kill不能杀死swoole进程的问题 Grpc的fork模式问题
发现swoole的一个服务,用普通的kill总是杀不死,最后还是留一个进程在那里非要用 kill -9 才能结束掉。看了一下,进程是卡死在 grpc shutdown的信号量上面了。#0 0x00007f533454d48c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0#1 0x00007f53301ada52 in gpr_cv_wait () from /lib64/libgrpc.so.11#2 ...
-
July 28, 2020
Linux系统bash高级重定向之dev fd
[root@localhost ]# cat <(echo "test")testbash里面有这种高级用法,把输出直接通过重定向转给另外一个命令,类似管道| 重定向.http://www.gnu.org/software/bash/manual/html_node/Redirections.html/dev/fd/fdIf fd is a valid integer, file descriptor fd is duplicated./dev/fd 其实一个软连接指向/proc...
-
July 24, 2020
C11和linux内核的静态断言static_assert和build_bug_on
以前的常用的编译期错误报告,就是#if 和 #error 的宏检查吧,不过这个能针对宏的值做检查,c语言有一个很古老的assert函数,这个运行时检查会影响性能吧。不过c11/c++11 加了一个 static_assert,这个的好处就是支持对所有常量的判断,而且是编译期的检查不影响性能。印象中记得有这么一个东西,上次想在内核里面用的时候没找到,刚看了一下内核代码发现linux内核已经包装了 BUILD_BUG_ON系列的宏了,不过static_assert应该也还能用。https:/...
-
July 24, 2020
Linux的bpf过滤器的nop空指令
https://elixir.bootlin.com/linux/latest/source/Documentation/networking/filter.txt ja 6 Jump to label BPF_JUMP(BPF_JMP + BPF_JA, 0, 0, 0),像上面那样插入一个jmp 跳转到到下一行代码 ,最后应该会被jit生成器给删掉,也就是空指令的效果吧,不过和nop指令还是有区别的。https:...
-
July 23, 2020
Linux的conntrack Zone的
https://elixir.bootlin.com/linux/latest/source/include/net/netfilter/nf_conntrack_zones.hhttps://lwn.net/Articles/370152/https://specs.openstack.org/openstack/neutron-specs/specs/liberty/conntrack-zones.html才发现conntrack有一个zone的东西, 可以查看代码里面nf_ct_zo...
-
July 22, 2020
Linux内核的conntrack的连接跟踪表skb和nfct的查找和关联
static const struct nf_hook_ops ipv4_conntrack_ops[] = { { .hook = ipv4_conntrack_in, .pf = NFPROTO_IPV4, .hooknum = NF_INET_PRE_ROUTING, .priority = NF_IP_PRI_CONNTRACK, },ip_rcv 所有进入系统的包 NF_HOOK(NFPROTO_IPV4, NF_INET_PRE_ROUTING ipv4_c...
-
July 14, 2020
Netfilter的nf_drop返回特定的errno
/* Returns 1 if okfn() needs to be executed by the caller, * -EPERM for NF_DROP, 0 otherwise. Caller must hold rcu_read_lock. */int nf_hook_slow(struct sk_buff *skb, struct nf_hook_state *state, const struct nf_hook_entries *e, unsigned int s){...