
linux
羽生少年
格物致知,知行合一!
展开
-
Linux Tools Quick Tutorial
工具参考篇 — Linux Tools Quick Tutorial原创 2023-07-05 10:15:49 · 356 阅读 · 0 评论 -
centos-yum错误: Cannot retrieve repository metadata (repomd.xml) for repository怎么解决
for repository:xxxx ,修改xxx的enabled=1改为enabled=0原创 2022-07-20 16:11:56 · 992 阅读 · 0 评论 -
Linux Tools Quick Tutorial
linux 工具使用原创 2022-06-06 13:51:58 · 507 阅读 · 0 评论 -
centos7 安装 debuginfo
centos7 安装 debuginfo - 简书 (jianshu.com)原创 2022-05-10 11:16:41 · 559 阅读 · 0 评论 -
Linux 编译运行查找头文件和库的顺序
linux中在使用gcc进行编译时,可能会出现找不到相应库或头文件的情况,往往让人十分头疼。因此,此文描述了库和头文件的查找顺序和一些注意事项,希望能帮助大家在出错时能够快速定位和解决。头文件gcc在编译时按照如下顺序寻找所需要的头文件:1.先搜索当前目录(这里注意,只有用#include "headfile.h"时才会搜索当前目录)2.接着搜索-I指定的目录3.然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH..原创 2021-12-31 09:59:32 · 1887 阅读 · 1 评论 -
深入理解 Linux的 I/O 系统
传统的 System Call I/O在 Linux 系统中,传统的访问方式是通过 write() 和 read() 两个系统调用实现的,通过 read() 函数读取文件到到缓存区中,然后通过 write() 方法把缓存中的数据输出到网络端口。read(file_fd,tmp_buf,len);write(socket_fd,tmp_buf,len);下图分别对应传统 I/O 操作的数据读写流程,整个过程涉及 2 次 CPU 拷贝、2 次 DMA 拷贝,总共 4 次拷贝,以及 4 次...原创 2021-12-18 22:06:31 · 159 阅读 · 0 评论 -
linux命令-- pstack命令(跟踪进程栈)
pstack是一个shell脚本,用于打印正在运行的进程的栈跟踪信息,它实际上是gstack的一个链接,而gstack本身是基于gdb封装的shell脚本.。此命令可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的 PID。与jstack功相比, 它能对潜在的死锁予以提示, 而pstack只提供了线索, 需要gdb进一步的确定。pstack是gdb的一部分,如果系统没有pstack命原创 2021-12-06 13:45:31 · 18041 阅读 · 0 评论 -
Linux下排查进程占用cpu高的问题
相信很多C++程序员都经历程序占用cpu过高的问题,这种问题,如果对代码运行逻辑足够熟悉,只靠脑子想估计定位起来也不难,但是如果是调用第三方sdk,或者团队其他人开发的库导致的cpu占用居高,就不那么容易定位了。如何确定程序cpu占用情况?这个非常简单,一条命令搞定,top -p 进程pid,这样就可以:这样就可以持续的观察你的程序的cpu占用情况,如果一直居高不下,就可能是有问题了。从图中可以看到%CPU为98.0,这已经非常非常高了。如何查看线程级别的cpu占用情况?方法一:原创 2021-12-06 10:45:16 · 1560 阅读 · 0 评论 -
CMake 进行调试
在 Linux 下开发,可以用 gdb 进行调试,但是如果工程是用 CMake 构建的,那么需要在 CMakeLists.txt 中加入如下代码:CMake 配置SET(CMAKE_BUILD_TYPE "Debug") SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb") SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall") coredump进程奔原创 2021-11-25 23:03:03 · 3448 阅读 · 0 评论 -
linux下使用VS CODE + CMAKE 调试C++程序
Linux下使用VS Code + CMake 调试c++程序 - 灰信网(软件开发博客聚合)原创 2021-11-08 11:09:26 · 573 阅读 · 0 评论 -
gdb 拾穗
1,跳过某个特定信号(gdb) handle SIGPIPE nostop noprint pass2,break在特定的系统调用处(gdb) catch syscall 33,遇到一个断点的时候执行一组commands(gdb) commands 1 #在断点1出现的时候执行下面一组命令> where> continue> end(gdb)4,遍历某个数据结构set $i=0while $i<6set $p=XX..原创 2021-10-11 14:36:28 · 165 阅读 · 0 评论 -
linux多线程信号总结
linux多线程信号总结-businiaowyf-ChinaUnix博客原创 2021-10-11 13:19:51 · 149 阅读 · 0 评论 -
netstat 和 losf
http://niliu.me/articles/693.html区别:1.netstat无权限控制,lsof有权限控制,只能看到本用户2.losf能看到pid和用户,可以找到哪个进程占用了这个端口原创 2021-09-01 14:49:24 · 170 阅读 · 0 评论 -
linux, configure --prefix=/有什么用
“linux, configure --prefix=/”的作用是:编译的时候用来指定程序存放路径 。1、不指定prefix,可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr /local/share。2、指定prefix,直接删掉一个文件夹就够了。扩展资料:Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure–help输出原创 2021-06-17 14:57:35 · 345 阅读 · 0 评论 -
linux查看进程和线程的命令
1.任务:获得进程信息:ps命令,或者top命令,它能显示当前运行中进程的相关信息,包括进程的PID。ps命令能提供一份当前进程的快照。如果想状态可以自动刷新,可以使用top命令。2.任务:获得线程信息:输入下列命令:# ps -eLf# ps axms1、查找指定进程 ps -ef | grep mmp-front //mmp-front是进程关键字1第一条记录是查找出的进程;第二条结果是grep进程本身,并非真正要找的进程。3、不显示本身..原创 2021-05-19 09:40:30 · 3847 阅读 · 0 评论 -
Linux环境下段错误的产生原因及调试方法小结
1. 段错误是什么一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址、访问了系统保护的内存地址、访问了只读的内存地址等等情况。这里贴一个对于“段错误”的准确定义(参考Answers.com):A segmentation fault (often shortened to segfault) is a particular error condition that can occur during the operation of comput原创 2021-04-24 13:59:05 · 199 阅读 · 0 评论 -
段错误调试神器 - Core Dump详解
一、前言:有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的. 但这不像编译错误一样会提示到文件某一行, 而是没有任何信息, 使得我们的调试变得困难起来.gdb: 有一种办法是, 我们用gdb的step, 一步一步寻找. 这放在短小的代码中是可行的, 但要让你step一个上万行的代码, 我想你会从此厌恶程序员这个名字, 而把他叫做调试员. 我们还有更好的办法, 这就是core file.ulimit: 如果想让系统在信号中断造成的错误时产生c..原创 2021-04-24 13:57:32 · 672 阅读 · 0 评论 -
Linux系统调用
系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。从逻辑上来说,系统调用可被看成是一个内核与用户空间程序交互的接口——它好比一个中间人,把用户进程的请求传达给内核,待内核把请求处理完毕后再将处理结果送回给用户空间。系统服务之所以需要通过系统调用来提供给用户空间的根本原因是为了对系统进行“保原创 2020-07-20 23:38:31 · 123 阅读 · 0 评论 -
Linux环境崩溃生成core文件以及调试
Windows环境崩溃问题可根据vs调试工具查看,Linux同样可以查看调用堆栈的信息,只是需要更改Linux设置,使程序崩溃时候产生core文件。然后gdb调试即可。1产生core文件方法产生coredump的条件,首先需要确认当前会话的ulimit –c,若为0,则不会产生对应的coredump,需要进行修改和设置。ulimit -cunlimited (可以产生coredump且不受大小限制),这种设置仅对当前生效,如果想永久生效那么需要在/etc/profile中加入以...原创 2020-06-29 00:17:24 · 447 阅读 · 0 评论 -
文件描述符
内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。每一个文件描述符会与一个打开文件相对应,同时,不同的文件描述符也会指向同一个文件。相同的文件可以被不同的进程打开也可以在同一个进程中被多次打开。系统为每一个进程维护了一个文件描述符表,该表的值都是从0开始的,所以在不同的进程中你会看到相同的文件描述符,这种情况下相同文件描述符有可能指向同一个文件,也有可能原创 2020-06-17 11:54:52 · 284 阅读 · 0 评论