• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2023-08-13 19:50 Aet 隐藏边栏 |   抢沙发  4 
文章评分 3 次,平均分 5.0

strace

  1. 一个强大的命令行工具,用于在Linux系统上跟踪系统调用和信号
  2. 主要用于调试和诊断程序,在了解程序如何与操作系统交互方面非常有用

用法

  1. 跟踪系统调用

  1. 跟踪现有进程

  1. 筛选特定系统调用

  1. 写入到文件

  1. 跟踪子进程

高级用法

  1. 使用-c选项可以查看关于系统调用的统计信息,如次数、时间等
  2. 使用-e选项加上signal可以跟踪进程接收和发送的信号
  3. 使用-i可以显示指令指针地址,这对于调试可能非常有用

nohup

  1. 一个UnixLinux环境中的命令行实用程序,用于运行命令在终端会话结束后继续执行

用法

  1. command 是你想要运行的命令
  2. [arguments] 是传递给该命令的任何参数
  3. & 添加到命令的末尾将使该命令在后台运行

原理

  1. 使用nohup运行命令时,该命令将不会收到挂起信号(SIGHUP
    1. 这意味着即使你关闭终端窗口或注销当前会话,该命令也将继续运行

输出重定向

  1. 默认情况下,如果在命令中没有指定输出重定向,nohup将把标准输出和标准错误输出重定向到名为nohup.out的文件
  2. 如果用户没有权限在当前目录下写入,那么nohup.out将会在用户的主目录下创建
  3. 也可以手动重定向输出到其他文件,示例如下:

valgrind

  1. 一个强大的Linux下的内存检测工具,可以用于发现程序中的内存管理问题

功能

  1. 内存泄漏检测
    1. Valgrind能够检测到程序中未释放的内存块,这些内存块在程序结束后也不会被操作系统回收
  2. 越界访问检测
    1. 如果程序访问了数组的越界位置或未初始化的内存,Valgrind会报告这些问题
  3. 错误的内存释放
    1. 例如,释放了未分配的内存或释放同一块内存两次
  4. 使用未初始化的值
    1. 如果程序使用了未初始化的变量,Valgrind会发出警告
  5. 线程错误检测
    1. Valgrind也可以检测多线程程序中的各种常见错误,如死锁、竞态条件等

工具集

  1. Valgrind实际上是一组工具的集合,最常用的工具是Memcheck
  2. 其他工具包括用于缓存分析的Cachegrind
  3. 用于线程错误检测的Helgrind

Memcheck

  1. Memcheck是Valgrind的主要工具之一,主要用于检测C和C++程序中的内存管理问题
    1. 它能检测是通过拦截内存分配和释放的调用

选项

  1. --leak-check=full
    1. 提供关于内存泄漏的详细信息
  2. --show-leak-kinds=all
    1. 显示所有类型的内存泄漏。
  3. --track-origins=yes
    1. 显示未初始化值的来源

使用

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2023-08-15
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享