
C/C++
文章平均质量分 51
夏 克
Shylock
展开
-
编译安装Fedora最新内核
以上是下载、编译和安装Fedora内核的基本步骤。如果您需要进行更高级的配置或调试,可以查看Fedora内核源代码中的文档或参考Fedora官方文档。在该页面中选择需要下载的内核版本,然后在页面下方找到相应的源代码包下载链接。下载的源代码是一个rpm包,需要解压才能得到内核源代码。首先需要确定您需要下载的内核版本。该命令将使用默认配置文件生成内核配置。该命令将使用所有可用的CPU核心并行编译内核。在编译内核之前,需要安装一些编译工具。该命令将安装内核模块和内核镜像,并将新内核添加到引导程序中。原创 2023-03-22 11:18:00 · 1349 阅读 · 1 评论 -
gdb查看汇编代码的例子
run注意:如果您使用的是 Intel 架构的处理器,可以在 gdb 中使用命令来切换汇编代码的格式为 Intel 格式。默认情况下,汇编代码是 AT&T 格式的。原创 2023-03-05 19:17:01 · 4228 阅读 · 0 评论 -
使用objcopy和gdb迁移符号文件
使用objcopy和gdb迁移符号文件摘要我们日常工作中往往会遇到使用商业软件过程中出现一些异常crash掉或core dump之类的问题,此时可能需要在客户方调试问题,但往往客户方使用的release版本没有相关的debug信息,这时可能需要开发方提供对应版本的符号文件以便进行调试,下面介绍如何将对应版本的符号文件导出给客户方,以及客户方如何导入符号文件进行调试(前提是开发方需要确认代码安全级别,客户方需要具备一定的技术能力)。step 1 确认版本是双方沟通版本的过程,如果程序友好的话,获取原创 2022-05-19 09:23:43 · 413 阅读 · 0 评论 -
使用librdkafka 报错:“Local: Queue full” 解决
使用librdkafka 报错:“Local: Queue full” 问题解决分析:该问题发生主要原因是由于生产者的生产能力大于了kafka server的接收落盘能力,导致生产者本地队列写满,默认情况下,如果生产者本地缓冲队列写满会抛出“Local: Queue full”异常。如何解决这个异常呢?上面将了,根因是生产者的活干的有点快。所以需要让本地队列里面的数据消化一会儿poll()。直接上代码吧: retry: RdKafka::ErrorCode err = producer原创 2022-01-05 13:31:36 · 6501 阅读 · 0 评论 -
C++11 make_shared 使用
make_shared的使用:shared_ptr<string> p1 = make_shared<string>(10, '9'); shared_ptr<string> p2 = make_shared<string>("hello"); shared_ptr<string> p3 = make_shared<string>(); 尽量使用make_shared初始化C++11 中引入了智能.转载 2020-06-17 11:45:04 · 1118 阅读 · 0 评论 -
【运维经】第63章——error while loading shared libraries: libxxx.so
运维经–目录error while loading shared libraries: libxxx.so: cannot open shared object file: No such file or dir问题原因:找不到要加载的动态库(所在目录)解决方法# 看看你的程序需要哪些动态库$ ldd [a.out|.so]# 设置环境变量$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:YOUR/LIB/PATH...原创 2020-05-21 18:49:10 · 209 阅读 · 0 评论 -
【运维经】第61章——ubuntu 一键安装boost开发库
运维经–目录ubuntu 一键安装boost开发库sudo apt-get install boost-all-dev原创 2020-04-23 16:38:43 · 282 阅读 · 0 评论 -
【运维经】第60章——oracle 数据库 中文乱码 排查
运维经–目录oracle 数据库 中文乱码 排查今天同事问了关于数据库编码的问题。场景如下:数据库:oracle应用:C++程序问题:c++程序,通过oci连接oracle数据库后插入出现中文乱码排查过程查看oracle字符集select userenv('language') from dual;USERENV('LANGUAGE')---------------...原创 2020-04-22 14:20:21 · 200 阅读 · 0 评论 -
【运维经】第58章——32位Linux 操作2G以上文件
运维经–目录32位Linux 操作2G以上文件增加编译选项-D _FILE_OFFSET_BITS=64open函数加O_LARGEFILEfd = open("./bill_test",O_LARGEFILE|O_APPEND|O_RDWR,0666);原创 2020-04-02 14:02:38 · 368 阅读 · 0 评论 -
【运维经】第55章——strcpy ,strncpy ,strlcpy的用法
运维经–目录strcpy ,strncpy ,strlcpy的用法好多人已经知道利用strncpy替代strcpy来防止缓冲区越界。但是如果还要考虑运行效率的话,也许strlcpy是一个更好的方式。1.strcpystrcpy 是依据 /0 作为结束判断的,如果 to 的空间不够,则会引起 buffer overflow。strcpy 常规的实现代码如下(来自 OpenBSD 3.9)...原创 2020-03-18 10:06:45 · 167 阅读 · 0 评论 -
【运维经】第54章—— warning: unused variable ‘xxx’ [-Wunused-variable]
运维经–目录warning: unused variable ‘xxx’ [-Wunused-variable]我们经常会遇到这样的编译警告,一种方式就是确定真的不用了,那么就直接删掉吧。如果想暂时保留,那么可以使用下面的方法骗过编译器。int i;(void)i;骗过编译器,就不会出现变量未使用的编译警告了。...原创 2020-03-17 15:15:24 · 19276 阅读 · 0 评论 -
【运维经】第53章——‘nullptr’ was not declared in this scope
运维经–目录‘nullptr’ was not declared in this scope因为nullptr是c++11新特性,所以编译时需要添加编译参数。g++ test.cpp -std=c++11原创 2020-03-16 10:57:47 · 460 阅读 · 0 评论 -
【运维经】第49章——std::packaged_task
运维经–目录std::packaged_task1.头文件#include <future>2.原型template< class > class packaged_task; // 不定义template< class R, class ...Args >class packaged_task<R(Args...)>;3.说...原创 2020-03-13 08:24:09 · 212 阅读 · 0 评论 -
【运维经】第48章——std::boolalpha, std::noboolalpha
运维经–目录std::boolalpha, std::noboolalpha1.头文件#include <ios>2.原型std::ios_base& boolalpha( std::ios_base& str );std::ios_base& noboolalpha( std::ios_base& str );3.说明std::b...原创 2020-03-11 10:32:13 · 183 阅读 · 0 评论 -
【运维经】第46章——error: overriding final function
运维经–目录error: overriding final functionc++11中引入了final关键字,被final修饰的函数不允许其派生类重载。#include <iostream>class Object{public: Object(){}; virtual ~Object(){}; virtual void fun() ...原创 2020-03-09 11:01:32 · 459 阅读 · 0 评论 -
【运维经】第45章——marked override, but does not override
运维经–目录marked override, but does not overridec++11中引入了override关键字,被override修饰的函数其派生类必须重载。#include <iostream>class Object{public: Object(){}; virtual ~Object(){}; virtual void...原创 2020-03-09 11:00:32 · 16014 阅读 · 1 评论 -
【运维经】第28章——C++开发工具一图通
运维经–目录C++开发工具一图通原创 2020-02-20 22:29:51 · 199 阅读 · 0 评论 -
undefined reference to vtable 虚函数
场景编译通过,但链接失败如果连接时遇到undefined reference to 'vtable for ...虚函数表错误,发生在有继承关系的类之间。父类有虚函数或纯虚函数,但子类没有实现这些函数。析构函数为虚函数,但对应的实现析构函数没有实现。...原创 2020-02-18 21:17:09 · 818 阅读 · 1 评论 -
【运维经】第25章——gdb最实用的那几条命令
运维经–目录实用调试操作set scheduler-locking off|onoff 不锁定其他线程,默认on 只让当前线程执行disassemble简写:disas反汇编使用方式disassembledisassemble $pc $pc+100disassemble 开始地址 结束地址source your_script使用gdb脚本-...原创 2020-02-17 20:10:28 · 232 阅读 · 0 评论 -
使用docker搭建Linux 0.11 实验环境
使用docker搭建Linux 0.11 实验环境对于学习linux内核的同学,Linux 0.11源码绝对是首选。但由于现在的硬件架构以及编译器的版本对于搭建Linux 0.11的实验环境会有一定的困难,因此本文目的是基于docker容器搭建一个纯净的Linux 0.11的环境。为你学习linux内核源码提供便利。希望你的Linux内核学习之路能从这里开始。获取源码从github上获...原创 2020-02-16 13:14:48 · 2153 阅读 · 2 评论