首页 > TAG信息列表 > 0000000000000000

ldd、objdump、nm、strings、strip等工具

go build -ldflags='-w -s'   最近在做Docker镜像的时候发现镜像文件非常大,需要找出程序的依赖库,减少程序的大小,所以整理了一下相关的工具。基本上这些工具都在GNU Binutils中。 GNU Binary Utilities或binutils是一整套的编程语言工具程序,用来处理许多格式的目标文件。当前的版

一个lock锁就可以分出低中高水平的程序员对问题的处置方式

一个lock锁就可以分出低中高水平的程序员对问题的处置方式    说到lock锁,我相信在座的各位没有不会用的,而且还知道怎么用不会出错,但让他们聊一聊为什么可以锁住,都说人以群分,大概就有了下面低中高水平的三类人吧。 第一类人 将lock对象定义成static,这样就能让多个线程看到同一

kvm内部错误(原因待查)

1 2022-06-08 14:11:35.662+0000: starting up libvirt version: 4.5.0, package: 33.el7 (CentOS BuildSystem <http://bugs.centos.org>, 2020-04-01-03:25:53, x86-01.bsys.centos.org), qemu version: 2.12.0qemu-kvm-ev-2.12.0-44.1.el7_8.1, kernel: 3.10.0-112

使用GDB调试一个out-of-tree的 LLVM Pass

  使用GDB调试一个out-of-tree的 LLVM Pass   时间:20220611,版本:V0.1 作者:robotech_erx 1.Introduction 环境: Ubuntu 20.04 桌面版 LLVM 13.0.1 github下载的pre-build版本。Release配置的,没有调试符号。 GDB  9.2  (Ubuntu 9.2-0ubuntu1~20.04.1,系统自带的版本)   LLVM里编

Helloworld 驱动模块加载

介绍 本文引用《linux设备驱动开发》书中部分解释,记录开篇第一章helloworld程序 以下内容需要掌握如下基础信息linux模块概念、链接编译、c语言基础 内容 helloworld.c #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> static int __init hellowol

故障分析:网络闪断引发的ServiceStack.Redis死锁问题

背景说明 某天生产环境发生进程的活跃线程数过高的预警问题,且一天两个节点分别出现相同预警。此程序近一年没出现过此类预警,事出必有因,本文就记录下此次根因分析的过程。 监控看到的线程数变化情况: 初步的分析和发现 异常的进程在重启时分别保留了dump,这是进行下一步windbg分析的

循序渐进学习开发RISCV-OS

exercises ch3 编译与链接 练习3-1 使⽤ gcc 编译代码并使⽤ binutils ⼯具对⽣ 成的⽬标文件和可执⾏文件(ELF 格式)进⾏分析。具体要求如下: 编写⼀个简单的打印 “hello world!” 的程序源文件:hello.c #include <stdio.h> int main(void) { printf("hello world!\n");

ELF文件解析(一):Segment和Section【转】

转自:https://www.cnblogs.com/jiqingwu/p/elf_format_research_01.html ELF 是Executable and Linking Format的缩写,即可执行和可链接的格式,是Unix/Linux系统ABI (Application Binary Interface)规范的一部分。 Unix/Linux下的可执行二进制文件、目标代码文件、共享库文件和core d

记一次 .NET 某消防物联网 后台服务 内存泄漏分析

一:背景 1. 讲故事 去年十月份有位朋友从微信找到我,说他的程序内存要炸掉了。。。截图如下: 时间有点久,图片都被清理了,不过有点讽刺的是,自己的程序本身就是做监控的,结果自己出了问题,太尴尬了

C C++混编

本文主要针对工程代码中C和C++混编需要注意的一个点进行记录。 示例代码如下所示: 编译结果如下所示: [... demo]$ ./build.sh -- Configuring done -- Generating done -- Build files have been written to: /home/10260390@zte.intra/桌面/demo/build [ 33%] Building C obj

Hive启动留下的RunJar进程不能使用Kill -9 杀不掉怎么办?

 1、问题示例   [Hadoop@master Logs]$ jps  3728 ResourceManager  6976 RunJar  7587 Jps  4277 Master  3095 NameNode  3863 NodeManager  3450 SecondaryNameNode  4362 Worker  3245 DataNode  [Hadoop@master Logs]$ kill -9 6976  [Hadoop@maste

记一次 .NET 某机械臂智能机器人控制系统MRS CPU爆高分析

一:背景 1. 讲故事 这是6月中旬一位朋友加wx求助dump的故事,他的程序 cpu爆高➕UI卡死,问如何解决,截图如下: 在拿到这个dump后,我发现这是一个关于机械臂的MRS程序,哈哈,在机械臂这种智能机器人领域居然还有 .NET 的用武之地,有点超出我的认知哈,不知道把员工当兄弟的大强子仓库里可有 .NE

01222222

Microsoft (R) Windows Debugger Version 10.0.22415.1003 AMD64 Copyright (c) Microsoft Corporation. All rights reserved. Loading Dump File [C:\Windows\Minidump\090521-7437-01.dmp] Mini Kernel Dump File: Only registers and stack trace are available Sym

查看进程内存使用量

动态查看进程的内存使用量: top -d 1 -p <pid> [,pid ...] ## -d设置为delay 1s,默认是delay 3s PS: 如果想根据内存使用量进行排序,可以shift + m(Sort by memory usage)。 静态查看 pmap命令: pmap <pid> ps命令: ps aux | grep <process_name> 查看/proc//文件夹下的status文件: N

操作系统内存管理

近期看了计算机操作系统和Linux内核,感受颇深,对于编程语言倒是认为不那么重要啦。 基本分段式存储管理 众所周知,一个可执行文件的存储一般来说是在磁盘上的,但是进程的地址空间要进行内存占用的 一般来说,一个可执行文件不运行的时候是一个文件,在磁盘上存储,但是当其运行的时候

程序人生-Hello’s P2P

摘  要 摘要:本文通过hello程序从被编译、汇编、链接、运行,从外部存储设备,经过I/O桥,进入到内存,各级cache,最后在I/O中输出,最后被回收的过程中,诠释了hello简单却复杂的一生,描述了即使是最简单的程序,也在生命周期中有着同样复杂的经历,从而揭开程序由高级层次到接近底层运行机制的

CSAPP2021 helloP2P

计算机系统 大作业 题 目 *程序人生-Hello’s P2P * 专 业 *计算机科学与技术 * 学   号 *1190301804 * 班   级 *1936602 * 学 生 *梁成    * 指 导 教 师 *刘宏伟   * 计算机科学与技术学院 2021年6月 [[]{#_Toc250450163 .anchor}]{#_Toc225579639 .anchor}摘 要

记一次 .NET 车联网云端服务 CPU爆高分析

一:背景 1. 讲故事 前几天有位朋友wx求助,它的程序CPU经常飙满,没找到原因,希望帮忙看一下。 这些天连续接到几个cpu爆高的dump,都看烦了

栈溢出的场景分析和建议

场景介绍 有时候当你收到一个dump后,大多数情况可以通过k命令查找到导致栈溢出的函数。但是本文要讲的是,曾经碰到过的栈溢出(stackoverflow), 却无法直接通过k命令查看到当前的函数调用栈。 下面将介绍一个简单的方法,找到导致栈溢出的函数。 样例代码 先声明下,因为产品的实际

Linux eBPF 程序构成与通信原理

作者简介:Daemon.Wu, Linux 内核性能优化工程师,就职于某微小手机厂从事手机性能优化。座右铭:知行合一。原创雄文:由泰晓读者投递的各类社区原创好文。版权声明:本文最先发表于 “泰晓科技” 微信公众号,欢迎转载,转载时请在文章的开头保留本声明。 目录 1 前言 2 eBPF 框架 2.1

被 C# 的 ThreadStatic 标记的静态变量,都存放在哪里了?

一:背景 讲故事 前几天公号里有一位朋友留言说,你windbg玩的溜,能帮我分析下被 ThreadStatic 修饰的变量到底存放在哪里吗?能不能帮我挖出来

Windows10蓝屏触发及分析

一、重现环境: 1、windows10版本 2、idapro7_5499 3、vs2008运行库(vcredist2008sp1.zip) 二、触发蓝屏 1、触发poc include include int main() { WCHAR fileName[] = L”\\.\globalroot\device\condrv\kernelconnect”; WIN32_FILE_ATTRIBUTE_DATA data; GetFileAttributesEx(fi

gcc选项-g与-rdynamic的异同

https://blog.csdn.net/bobbypollo/article/details/79888753 注意,这是 链接选项,而不是编译选项。 在将c文件编译成.o的过程中,使用rdynamic是没有任何效果的。 只有将.o链接成elf时,才有效果。 这主要是对可执行程序而言的,而编译动态库时,即使没有rdynamic选项,默认也会将非静态函数

被 C# 的 ThreadStatic 标记的静态变量,都存放在哪里了?

一:背景 1. 讲故事 前几天公号里有一位朋友留言说,你windbg玩的溜,能帮我分析下被 ThreadStatic 修饰的变量到底存放在哪里吗?能不能帮我挖出来

一个lock锁就可以分出低中高水平的程序员对问题的处置方式

说到lock锁,我相信在座的各位没有不会用的,而且还知道怎么用不会出错,但让他们聊一聊为什么可以锁住,都说人以群分,大概就有了下面低中高水平的三类人吧。 第一类人 将lock对象定义成static,这样就能让多个线程看到同一个对象,以此实现线程间互斥和保证同步,如果再深问为什么?就怕遮遮掩掩的