gflag使用】的更多相关文章

前言: 1. gflag是一种命令行编码参数解析工具,开源地址: https://github.com/gflags/gflags , 在caffe框架也使用了gflag来编码解析命令行. 那么什么是gflag呢? 下面简单描述一下gflag: gflag支持如下数据格式:string ,double,int32, int64,uint64,bool需求: #include<iostream> #include<gflags/gflags.h> #include<string…
1. 使用Unicode字符集: 出现问题 E:\CodeBase\ML\Caffe\ThirdPartySrc\gflags-master\src\gflags.cc(1340): error C2664: 'BOOL PathMatchSpecW(LPCWSTR,LPCWSTR)' : cannot convert argument 1 from 'const char *' to 'LPCWSTR' E:\CodeBase\ML\Caffe\ThirdPartySrc\gflags-mas…
#include <gflags/gflags.h> #include <iostream> // 声明全局flag DEFINE_bool(my_bool, false, "bool flag"); DEFINE_int32(my_int32, , "int32 flag"); DEFINE_int64(my_int64, , "int64 flag"); DEFINE_uint64(my_uint64, , "…
参考:https://www.cnblogs.com/myyan/p/4699940.html 这是一款google开源的命令行参数解析工具,支持从环境变量.配置文件读取参数(可以用gflags代替配置文件) 定义参数: 使用gflags需要包含头文件 #include <gflags/gflags.h> (#define是C语言中提供的宏定义命令) gflags支持的参数类型包括:bool.int32.int64.uint64.double.string等,定义参数通过DEFINE_type…
gflags 一. 下载与安装 这里直接使用包管理器安装: sudo apt install libgflags-dev 二. gflags的简单使用 1. 定义需要的类型 格式: DEFINE_类型名(变量名, 默认值, 描述语) 类型 定义格式 bool类型 DEFINE_bool 32位的int类型 DEFINE_int32 64位的int类型 DEFINE_int64 64位的unsigned int 类型 DEFINE_uint64 double类型 DEFINE_double str…
本文只是学习如何配置PERL DBI.PERL DBD时,整理的一个学习实践文档,大部分参考网上资料,详情请见下面参考资料. PERL对数据库的支持广而且全,几乎所有的主流数据库都有与之相应的PERL模块支持.为了开发可在不同数据库上移植的PERL应用,DBI(DataBase Interface)模块应运而生,使用这个模块,应用只需使用统一的接口便能操作不同的数据库,真正实现了可移植:当然,这个DBI也配备有相应的开关来支持不同数据库的各种特性. DBI只是个抽象层,要实现支持不同的数据库,则…
1.故事背景      最近同事的代码中碰到一个bug会导致奔溃的bug,从dump上看是由于某个对象的堆内存指针被释放了,但代码仍调用了该对象指针的虚函数,从而引起内存访问违法崩溃,由于该类被大量使用,无法直接定位到具体哪个类被提前释放了,从而打算开启堆页检查,跟踪该对象堆内存指针被释放的代码位置,从而揪出元凶.      由于此bug在win7的机器上不易重现,在xp sp3的机器上较容易重现,故准备在xp sp3的机器上开启堆页检查(DHP),跟踪该对象指针被释放的代码位置和时机,由于未从…
常用模块: time和datetime shutil模块 radom string shelve模块 xml处理 configparser处理 hashlib subprocess logging模块 re正则表达式 time模块 time模块,即时间模 import time # 导入时间模块 print(time.process_time()) # 返回处理时间,不包含sleep时间,mac上测试不出来 print(time.asctime()) # 返回时间格式Mon Nov 14 10:…
windbg ANSI Command Tree 1.0 title {"Microshaoft Commands"} body {"cmdtree"} {"Microshaoft.WinDbg.CmdTree.txt"} {".cmdtree microshaoft.windbg.cmdtree.txt"} {"SOS Commands"} {"Load SOS and SOSEX"}…
create table about( content text )engine=myisam default charset=utf8; 项目的各个建表语句 create database day456 default charset utf8; create table user( )engine=myisam default charset=utf8; select * from stu; use day456; drop table user; use day456; select *…
今天想给我的C++项目找一个开源的日志类,用于记录系统日志,结果浪费了半个下午的时间.从网上搜索相关资料,找到以下几个备选方案: 1.log4cplus 下载地址:http://sourceforge.net/projects/log4cplus/files/log4cplus-stable/1.1.0 2.log4cxx 下载地址:http://logging.apache.org/log4cxx/download.html (log4cxx 是由JAVA实现的 log4j 开源的,用C++实…
数组方法: 模拟队列的操作:push()/shift();unshift()/pop();模拟栈操作:push()/pop(); push()返回增加后的长度.unshift也是.pop和shift返回项值.concat()在已有的数组基础上返回一个数组,即是传入的是数组,它也会将数组变成单一的参数.reverse()没有用,join()将数组以某种分隔符的形式返回字符串.字符串的split可返回一个数组. slice在字符串及数组上都会有,slice(n,n+p),p是复制数目.数组会得到一个…
http://blog.csdn.net/wangxingbao4227/article/details/6772579 C++中虚拟继承的概念 为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类. 这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射.这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题. class 派生类名:virtual 继承方式  基类名virtual是关键字,声明该基类…
感谢博主 http://book.51cto.com/art/200711/59874.htm 2.2  读懂机器的语言:汇编,CPU执行指令的最小单元2.2.1  需要用汇编来排错的常见情况 汇编是CPU执行指令的最小单元.下面一些情况下,汇编级别的分析通常是必要的:1. 阅读代码看不出问题,但是跑出来的结果就是不对,怀疑编译器甚至CPU有毛病.2. 没有源代码可以阅读.比如,调用某一个API的时候出问题,没有Windows的源代码,那就看汇编.3. 当程序崩溃,访问违例的时候,调试器里看到的…
Win32堆的调试支持 为了帮助程序员及时发现堆中的问题,堆管理器提供了以下功能来辅助调试. 1:堆尾检查(Heap Tail Check) HTC,在堆尾添加额外的标记信息,用于检测堆块是否溢出. 2:释放检查(Heap Free Check)在释放堆块时进行检查,防止释放同一个堆块. 3:参数检查,对传递给堆的各种参数进行更多的检查. 4:调用时验证(Heap Validate On Call)HVC,每次调用堆函数时都对整个堆进行验证和检查. 5:堆块标记(Heap Tagging)为堆块…
<Windows用户态程序高效排错>第二章主要介绍用户态调试相关的知识和工具.本文主要讲了PageHeap,调试Heap问题的工具. AD:51CTO学院:IT精品课程在线看! 2.4.2  PageHeap,调试Heap问题的工具 幸运的是,Heap Manager的确提供了主动检查错误的功能.只需要在注册表里面做对应的修改,操作系统就会根据设置来改变Heap Manager的行为.Pageheap是用来配置该注册表的工具.关于heap的详细信息和原理请参考: How to use Page…
一.前言 在前一段时间,我遭遇了一个现象诡异的Bug,最后原因归结为在DllMain里错误地调用了FreeLibrary(在本文最后对此Bug有详细的解释). MSDN里关于禁止在DllMain里调用LoadLibrary和FreeLibrary的解释过于含糊不清,所以我重温了一遍RussOsterlund的"Windows 2000 Loader"一文,并仔细阅读了泄漏的Win2000源代码的相关部分.按照我一贯的习惯,我的阅读过程形成了我这篇文章的主体.自从我2000年写了&quo…
有没有碰到过程序启动就因为异常直接crash?有没有碰到程序启动之后什么反应也没有?有没有碰到过程序启动之后去触发另一个进程失败?有没有碰到别人的程序调用了你的代码,出现问题以后,让你来调查,而你只有你的源代码,该怎么办? 碰过这样的问题,应该都会很头疼吧,如何诊断问题呢?最简单的当然是Debug吧,可是当程序没有启动的时候,我们不能Attach to process...因为进程还不存在.但如果等启动程序再Attach,启动时的代码段早就过了. 当然你还有一种选择,就是写Log,但是Log的信…
首先声明,自己对CLR了解得不多,只是个人爱好,可能有错误,请指出,文件源码如下(可能不是最新的) // // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. // /******************************************…
首先用windbg附加进程ie页面内容进程,!gflag +hpa添加堆尾检查,.childdbg 1允许子进程调试,然后加载POC. POC: <html> <body> <table style="table-layout:fixed" > <col id=" >&nbsp </col> </table> <script> function over_trigger() { &qu…
0.64位程序参数一次保存在RDI,RSI,RDX,RCX,R8和 R9,具体见图 windows64位调用约定 1.<_libc_csu_init>有一些万能gadget,汇编如下 #!bash 00000000004005a0 <__libc_csu_init>: 4005a0: 6c d8 mov %rbp,-0x28(%rsp) 4005a5: 4c e0 mov %r12,-0x20(%rsp) 4005aa: 8d 2d lea 0x200873(%rip),%rbp…
一.UDP报文格式 源端口(2个字节):发送报文的进程的16位端口号. 目的端口(2个字节):目的设备上的接收进程的16位端口号. 长度(2个字节):整个UDP数据报的长度,包括首都和数据字段. 校验和(2个字节):提供错误检测功能的16位校验和,为可选项. 数据(可变长度):要发送已封存应用报文. 2.UDP封装 3.UDP校验和计算 UDP校验和是所计算字段的16位反码和的反码,用IP数据报的某些字段组成一个伪首部,再与UDP报文合在一起计算校验和.因此,校验和是对伪首部.UDP首部和UDP…
一.以太网IP包报文格式 IP包是连接在以太网首部(以太网目的MAC地址(6个字节)+以太网源MAC地址(6个字节)+帧类型(2个字节))之后. IP报文中各个字段分析如下: ①.版本:在IP报文中,版本占了4个bit位,用来表示该协议采用的是哪一个版本的IP,相同版本的IP才能进行通信.一般此处的值为4,表示IPv4. ②.头长度:指IP报文中头部的长度,占了4个bit位,一个数值单位表示4个字节(32个bit).如果忽略可选项,此处的值为5,表示IP包头部为20个字节. ③.服务类型:指所需…
一.以太网ARP报文格式 ①.以太网目的地址:占6个字节(接收方的MAC地址,不清楚时发广播地址:FF-FF-FF-FF-FF-FF) ②.以太网源地址:占6个字节(发送方的MAC地址) ③.帧类型:占2个字节(IPv4: 0x0800,ARP:0x0806,PPPoE:0x8864,802.1Q tag: 0x8100,IPV6: 0x86,DDMPLS Label:0x8847) ④.硬件类型:占2个字节(以太网的值为1即:0x0001) ⑤.协议类型:占2个字节(IPv4: 0x0800,…
记录下自己使用WinDbg分析Dump时常用的一些方法和命令 !analyze -v //找出出错的堆 .exrc //找到程序崩溃的位置 !heap //打印出错函数的局部位置 !for_each_frame dv /t //显示call stack内容 ~*kbn //显示所有线程信息 ~线程号 s //切换线程 kbn //显示当前线程信息 .reload //加载符号信息 !runaway //查看19号线程所用时间 .load wow64exts !sw //切换到64位 定位Unha…
Apollo-3.0本地编译 用docker编译所用的dev.x86_64.dockerfile文件(具体位置在apollo/docker/build)中有所有的依赖库或包, 还会执行一些shell脚本, 这些shell脚本主要存放在apollo/docker/build/installers文件中. 第一步,安装依赖库 其实也就是按着dev.x86_64.dockerfile文件进行执行, 把RUN改为shell执行罢了. sudo apt-get update -y && \ sudo…
简介 Google 的 gflags 是一套命令行参数处理的开源库.比 getopt 更方便,更功能强大,从 C++的库更好的支持 C++(如 C++的 string 类型).包括 C++的版本和 python 的版本. 这里只针对 C++版本,python 版本的使用类似.主要内容参考与翻译自官方文档:http://gflags.googlecode.com/svn/trunk/doc/gflags.html 你能从这里下载本文章的源代码工程. example 源代码先看 example 源代…
-- 创建商店类,继承了Behavior local UIShopController = class("UIShopController", Behavior); -- 包含并引用系统提示框 local SystemPrompt = require(__APP_PACKAGE_NAME__ .. ".scenes.common.SystemPrompt") -- 包含引用其他界面 local UIGoodsInfoController = require(__AP…
windbg ANSI Command Tree 1.0 title {"Crash Dump Analysis Checklist"} body {"Crash Dump Analysis Checklist"} {"General"}   {"Versions and locations"} {"version"}   {"Set longer stack trace"} {&quo…
C++中虚拟继承的概念 为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类.这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射.这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题.class 派生类名:virtual 继承方式  基类名virtual是关键字,声明该基类为派生类的虚基类.在多继承情况下,虚基类关键字的作用范围和继承方式关键字相同,只对紧跟其后的基类起作用.声明了虚基类之后,虚基…