2020-10-10 vs-stl实现中 std::unordered_map计算哈希值:size_type _Hashval(const key_type& _Keyval) const{ // return hash value, masked to current table size return (_Traitsobj(_Keyval) & _Mask); // size_type _Mask; // the key mask : _Mask = _Buckets ...
WinDbg命令详解--线程 线程命令是以~开始,后面跟线程id(一个windbg从0开始的一个编号),或者.,#,*等,可和其他命令混合使用。~ 简洁地显示当前进程的所有线程,~. 表示当前线程~# 表示异常或者产生调试事件的线程~* 表示所有线程~1 表示一号线程...
vs下支持静态变量的线程安全初始化 // Control access to the initialization expression. Only one thread may leave// this function before the variable has completed initialization, this thread// will perform initialization. All oth...
std::shared_ptr所管理对象的析构问题 直接上代码:#include "stdafx.h"#include <memory>class Base{ // 没有虚析构函数};class Derived : public Base{public: Derived() = default; Derived(int int_) : i_(int_) {} ~Derived()...
地址重定位:静态重定位和动态重定位 地址重定位就是操作系统将逻辑地址转变为物理地址的过程。。。也就是对目标程序中的指令和数据进行修改的过程将逻辑地址空间重定位到物理地址空间的时机有三种:1、程序编译连接时:符号绑定,各Obj模块的相对虚拟地址空间 -->统一的虚拟地址空间;可指定一个BaseAddress以优化装载时的重定位2、程序装入内存时: 虚拟地址空间 -->虚拟地址空间;如果映像文件中的Base Ad...
Git进行pull时,出现please enter the commit message for your changes... 在服务端更新代码时,git pull时总是出现需要编辑一个commit messagegit status 查看了下,原来是服务端有部分代码需要commit后尚未push导致。这种问题,解决办法如下:如果你本地仓库不需要push这里编辑默认使用的vi编辑如需要修改,i进入编辑,鼠标第一行编辑默认的合并备注,编辑后按esc进入vi命令模式,:wq退出即可。如不需要修改,直接esc进入v...
windbg之经典死锁案例 及 相关命令 1 先上死锁代码 如下:#include "stdafx.h"#include <mutex>#include <thread>#include <windows.h>// windows系统中 std::mutex内部是通过Event内核对象实现的,而不是CRITICAL_SECTIONstd::mutex mtx0;std::mutex ...
windbg学习21(!handle和!cs) 1.查看句柄信息!handle!handle 扩展显示目标系统中一个或所有进程拥有的句柄的信息。[cpp] view plaincopy0:001>!handle Handle4 TypeDirectory Handle8 TypeFile Handlec Type...
Windbg查看调用堆栈(k*) https://www.52pojie.cn/thread-664189-1-1.html 无论是分析程序崩溃原因,还是解决程序hang问题,我们最常查看的就是程序调用堆栈。学会windbg调用堆栈命令,以及理解堆栈中的各个参数的意义就显得至关重要。上图就是一个典型的Windbg堆栈,如果不理解ChildEBP、RetAddr、Args to Child等参数意义,以及它们之间...
Qt 线程安全类,可重入类,不可重入类 1、线程安全类:不同线程对同一个类的对象进行操作,例如在不同线程调用同一个对象的类成员函数,是安全的,互不妨碍的,则说明该类是线程安全的,Qt中线程安全的类有QMutex、QMutexLocker、QReadWriteLock、QReadLocker、QWriteLocker、QSemaphore、QThreadStorage<T>以及QWaitCondition;2、可重入...
c++无类型参数模板(non-type template parameter) a non-type template-parameter shall have one of the following types(无类型模板参数应该是下面所列举的类型):1. integral or enumeration type(整型 或者 枚举)2. pointer to object or pointer to function(对象的指针或函数指针,其实还包括基本类型的指针)...
C 之 void *realloc(void *mem_address, unsigned int newsize) 例如有 void* old_addr = ...; unsigned int old_size = ...; void* new_addr = realloc(old_addr, new_size)1 返回值new_addr不为NULL的情况: 1)old_addr != NULL && new_size < old_size:紧缩并释放后面的部分(new_...
C++ 模板的 实例化 和 [偏]特化 最近看了看到了模板的特化,突然想起来上说的显式具体化、隐式具体化、特化、偏特化、具体化等概念弄得头晕脑胀,我在网上了找了好多帖子,才把概念给理清楚。一下是我把再网上找的资料整理一下。看着这么多叫法,其实就是三种。1. 显示实例化2. 隐式实例化3. 特化(=具体化)、偏特化一、实例化1.显示、隐式实例化什么是实例化:一个通过使用具体值替换模板参数,从模板产生的普通类...
stl 二分查找api lower_bound upper_bound binary_search STL中关于二分查找的函数有三个lower_bound 、upper_bound 、binary_search 。这三个函数都运用于有序区间(当然这也是运用二分查找的前提),下面记录一下这两个函数。ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, l...
子类隐藏父类的公共方法 class QPostEventList : public QVector<QPostEvent>{。。。private: //hides because they do not keep that list sorted. addEvent must be used using QVector<QPostEvent>::append; us...
C++11 lambda编译器实现为函数对象,编译器自动生成相应的函数对象类,捕获列表即时函数对象类的数据成员(即闭包的状态) C++11 lambda编译器实现为函数对象,编译器自动生成相应的函数对象类,捕获列表即是函数对象类的数据成员(即闭包的状态)https://blog.csdn.net/freshui/article/details/55098799...
boost编译 windows: boostrap.bat -----运行&生成----> b2.exe -----运行&生成----> lib/dll文件在stage/lib下 linux: boostrap.sh -----运行&生成----> b2 -----运行&生成----> so/a文件在stage/lib下 b2可配置的参数如下...
使用setStyleSheet怎么样才不影响子组件:解决方法 使用了级联样式setStyleSheet("border-image: url(:/image/serialport.png)");结果子组件 都影响。setStyleSheet(".QWidget{border-image: url(:/image/serialport.png)}");前面加个 . 就可以单独对需要处理的出来了。...