avatar
文章
38
标签
11
分类
6

Home
Archives
Tags
Categories
Anthony Li's Blogs
搜索
Home
Archives
Tags
Categories

Anthony Li's Blogs

临江仙·夜归临皋
发表于2025-04-12|literature(文学)
临江仙·夜归临皋 [宋] 苏轼 夜饮东坡醒复醉,归来仿佛三更。家童鼻息已雷鸣。敲门都不应,倚杖听江声。 长恨此身非我有,何时忘却营营。夜阑风静縠纹平。小舟从此逝,江海寄余生。
自遣
发表于2025-04-06|literature(文学)
自遣 [唐] 李群玉 翻覆升沉百岁中,前途一半已成空。 浮生暂寄梦中梦,世事如闻风里风。 修竹万竿资阒寂,古书千卷要穷通。 一壶浊酒暄和景,谁会陶然失马翁。
赠卫八处士
发表于2024-12-03|literature(文学)
赠卫八处士 [唐] 杜甫 人生不相见,动如参与商。 今夕复何夕,共此灯烛光。 少壮能几时,鬓发各已苍。 访旧半为鬼,惊呼热中肠。 焉知二十载,重上君子堂。 昔别君未婚,儿女忽成行。 怡然敬父执,问我来何方。 问答乃未已,驱儿罗酒浆。 夜雨剪春韭,新炊间黄粱。 主称会面难,一举累十觞。 十觞亦不醉,感子故意长。 明日隔山岳,世事两茫茫。
Linux ps常用命令
发表于2024-12-03|computer_science
1. 查看所有进程1$ ps aux 2. 查看进程启动时间1$ ps -eo pid,lstart,cmd
题临安山水
发表于2024-11-26|literature(文学)
题临安山水 [金] 完颜亮 万里车书一混同,江南岂有别疆封? 提兵百万西湖上,立马吴山第一峰!
Linux GDB 常用命令
发表于2024-11-26|computer_sciencegdb
1. 编译注意: 不要使用优化(即使用-O0选项) 带上调试信息(即使用-g选项) -g的调试信息级别是2,使用-g3会带上额外调试信息(如关于宏的) 总而言之,最好使用-g3 -O0 2. help system2.1 help命令help缩写为h help <command> 输出某个命令的全部文档 2.2 apropos命令apropos [-v] <regexp>遍历所有命令、别名和文档查找<regexp>的匹配 2.3 其他complete <args>输出<args>所有可能的命令补全结果 info命令用于获取正在调试的程序的状态信息 show命令用于获取GDB本身的状态信息 3. 启动GDB3.1 正常启动直接指定二进制文件,例如gdb myprogram 或者先不带参数启动GDB再用file命令加载,例如 1234$ gdb(gdb) file myprogramReading symbols from myprogram...(gdb) inferior在GDB里基本等同于进程,它可以包含多个线 ...
Linux tmux命令常见用法
发表于2024-10-14|computer_science
1. 简介终端复用器,terminal multiplexer的简称。 将终端和终端里运行的命令解绑。 2. 常用命令2.1 新建会话 tmux new : 创建会话,会话名默认为编号:0,1,2… tmux new -s <session-name>: 创建会话并指定会话名 2.2 分离会话Ctrl+b d或者tmux detach 2.3 接入会话tmux attach -t <session-name> 2.4 切换会话tmux switch -t <session-name> 2.5 重命名会话tmux rename-session -t <old-session-name> <new-session-name> 2.6 查看会话tmux ls
memory sanitizer
发表于2024-10-07|computer_sciencesanitizer
1. 简介MemorySanitizer简称msan,用于发现C/C++程序中对未初始化内存的读取。 msan是比特精度的。 msan的功能是Valgrind功能的子集,但运行速度更快。 msan使用stderr打印错误报告 msan发现错误即报告,而不是等到程序即将结束时统一报告 msan发现如下bug并报告warning: 在条件分支中使用未初始化的值。 使用未初始化的指针进行内存访问。 函数返回未初始化的值(这是未定义行为,可以使用-fno-sanitize-memory-param-retval来disable这项检查)。 传递未初始化数据到一些libc函数中。 2. 使用方法2.1 常用使用方法 使用clang编译器 使用编译选项-fsanitize=memory -fPIE -pie -fno-omit-frame-pointer -g 默认错误报告是fatal的,即发现并报告第一个错误后就退出,如需发现多个错误需使用编译选项-fsanitize-recover=memory 例如如下程序a.cc: 12345678910111213#incl ...
Linux less命令常见用法
发表于2024-09-27|computer_science
1. 简介 类似于more命令,但除了向前(下)移动也允许向后(上)移动 不会在启动时读入整个输入文件,因此比vi启动更快 less的命令基于more和vi less的命令前可以加一个十进制数N,某些命令可以使用它 2. 常用命令 h或H: 显示命令帮助信息 q: 退出less <SPACE>: 前进(向下)N行,默认一个window b: 后退N行,默认一个window <ENTER>或j: 前进N行,默认1 k或y: 后退N行,默认1 d: 前进N行,默认半个window;如果指定了N,它成为后续d和u命令的默认值 u: 后退N行,默认半个window;如果指定了N,它成为后续d和u命令的默认值 R: 重新加载当前文件;在查看的当前文件被改变时很有用 F: 前进至文件结尾并保持继续读文件(类似于tail -f),按^C停止等待文件生长 g: 跳转到第N行,默认第1行;如果N很大这个命令可能很慢 G: 跳转到第N行,默认最后一行;如果N很大这个命令可能很慢 p或%: 跳转到N%位置处,N的取值范围为[0, 100],且可以包含 ...
address sanitizer算法原理
发表于2024-09-26|computer_sciencesanitizer
1. 算法原理精简版(TL;DR)1.1 运行时库asan运行时库提供了asan版的malloc和free函数。 malloc函数在分配的内存区域周围会再分配redzones内存并在redzones内存投毒(poisoned)。 free函数对被释放的内存区域投毒(poisoned),并将它放到临时隔离队列(quarantine queue)中,使它在一段时间内不会被再malloc。 1.2 插桩程序中的内存访问操作会做如下转换: 转换前: 1*address = ...; // or: ... = *address; 转换后: 1234if (IsPoisoned(address)) { ReportError(address, kAccessSize, kIsWrite);}*address = ...; // or: ... = *address; 2. 内存映射2.1 内存划分整个内存虚拟地址空间被分为不相交的两类: Mem:被常规应用代码使用的内存区域。 Shadow:用于保存元数据(称为shadow values)。 2.2 内 ...
12…4
avatar
Anthony Li
文章
38
标签
11
分类
6
Follow Me
最新文章
临江仙·夜归临皋2025-04-12
自遣2025-04-06
赠卫八处士2024-12-03
Linux ps常用命令2024-12-03
题临安山水2024-11-26
分类
  • computer_science26
    • gdb6
    • git2
    • linker6
    • sanitizer5
  • literature(文学)12
标签
linker git poem(诗歌) gdb history(历史) shell excerpt(摘抄) sanitizer loader linux c++
归档
  • 四月 20252
  • 十二月 20242
  • 十一月 20242
  • 十月 20242
  • 九月 20246
  • 八月 20242
  • 七月 20241
  • 六月 20241
网站资讯
文章数目 :
38
本站访客数 :
本站总访问量 :
最后更新时间 :
©2019 - 2025 By Anthony Li
框架 Hexo|主题 Butterfly
搜索
数据库加载中