09 2017 档案
摘要:在X86体中 数字是以小端形式存在 的 小端的意思就是高字节 在高(内存) 地址,低字节在低(内存)地址 而大端正好相反 ,其 高字节 在低(内存)地址, 低字节 在高(内存)地址 例如 int a=1; int 在32位或64位机 中都是4个字节,即 00000000 00000000 00000
阅读全文
摘要:c中的printf中的参数就是典型的可变参数,参数不固定,那怎么获取呢 正常情况下C的函数参数入栈规则为__stdcall, 它是从右到左的,即函数中的最右边的参数最先入栈 结果为 a address is 3e20571cb address is 3e205718b values is 2a va
阅读全文
摘要:在修改php扩展Trie时,出现了一个小bug 注意这个 path_len的类型为int 运行结果为 start print the path print the path the path is not null the path address is 0x7fdd00000000 Segment
阅读全文
摘要:在64位机下, 函数的前6个参数都是保存在寄存器中,后面的参数才保存在栈中,那可变参数是不是也这样呢? 参考 这里 gdb 调试汇编 参考这里 还有这里 ebp 栈底 高地址 esp 栈顶 低地址 push %ebp 保存栈底 push %esp %ebp 上一个帧的%esp ,就是本栈的栈底%eb
阅读全文
摘要:参考 这里 1)gdb 打印字符串的全部内容 set print element 0 2)用x命令查看内存(examine的缩写) (gdb) x/1ub 0x7ffff7fbf7a00x7ffff7fbf7a0: 196 从地址0x7ffff7fbf7a0开始, 读取 1 个单字节,以16进制形式
阅读全文
摘要:gap lock的内部加锁原理 gap lock的前置条件: 1 事务隔离级别为REPEATABLE-READ,innodb_locks_unsafe_for_binlog参数为0,且sql走的索引为非唯一索引 2 事务隔离级别为REPEATABLE-READ,innodb_locks_unsafe
阅读全文

浙公网安备 33010602011771号