太阳落雨

从菜鸟到老鸟

Windbg调试----多线程控制调试

在调试程序的时候,可能经常会有这样的需求,让一个线程在特定的时候才让其开始执行或者暂停执行。比如复杂的多线程导致死锁的问题,又或者多线程中的Race Condition 导致程序执行异常等。很多时候,我们可以借助编写调试代码来达到多线程的调试,可是有些情况下调试的执行粒度是指令级别的,那么这个时候...

2017-09-03 18:29:36

阅读数 1513

评论数 0

C/C++编程教训----函数内静态类对象初始化非线程安全(C++11之前)

不少程序员在编写程序的时候,会使用函数内静态(static)变量,既能满足函数内这个变量可以持久的记录某些信息,又使其访问范围的控制局限于函数内。但函数内静态类对象初始化是非线程安全的。问题背景在我们产品中对log4cxx做了一些简单的封装 (采用VS2005编译),其中会调用到getWarn这个...

2017-09-03 16:57:59

阅读数 1454

评论数 0

CPU百分百问题的研究

在对代码进行测试的时候,发现进程占用了100%的单核CPU资源。并且发现在另一个环境,这个进程占用了50%的CPU资源,因为在这个环境中是2核的CPU。而此时这个进程还并没有处理任何的数据,也就是说会有一个线程一个只占用一个CPU核的资源。对于这个问题研究的方法主要用到了两个工具:Process ...

2017-05-28 09:54:58

阅读数 632

评论数 0

C/C++编程教训----数据结构的类型别名和memset

问题描述学习微软,我们经常会这样定义数据结构, 并且定义了数据结构别名StructTest,和数据结构指针别名LPStructTest, 这样定义也许让程序的类型更加简洁。typedef _StructTest { int iVal; char csStr[100]; }Struc...

2017-05-14 16:52:55

阅读数 572

评论数 0

Windows中实现不依赖账户登录的开机启动程序

在Windows中很多的任务,我们希望能够在Windows 启动之后自动运行。举个例子,公司有个订饭系统,基本每天都需要登录去订饭,于是写一个脚本实现自动订饭。可是你的电脑每天要关机,当然不希望开机后还需要手动运行这个订饭脚本了。于是此时我们要将其这种脚本实现为开机自动启动脚本。 但要注意本文要...

2017-05-12 14:23:00

阅读数 10455

评论数 0

C/C++编程教训----'=='判断条件

程序质量保证个人谈一谈项目代码质量保证主要来源于以下几个方面: 程序员的经验,防御性的避免一些错误/坑。 单元测试: 单元测试应该是测试中最细粒度的测试,这个测试一般来说贯穿了整个开发以及后期维护;它能够保证到每一个函数/功能的健壮性,从而提高代码的整体质量。 测试自动化: 测试自动化,应该来说至...

2017-04-22 16:47:32

阅读数 544

评论数 0

Windbg无法捕获strcpy_s crash时的函数调用栈的研究

问题描述 在一年前,发现产品的windows service总是崩溃,但每次用windbg attach或者adplus产生dump,总是不能捕获到程序出错时候的栈,而且crash的时候只能看到少数甚至只剩一个线程。后来用windbg单步调试终于找到的罪魁祸首,原来是出错在strcpy_s这个函...

2017-01-22 09:46:31

阅读数 871

评论数 0

用户模式程序Dump收集

发布给客户的程序,出现问题后,通过Debug Log经常很难分析出原因。比如说程序崩溃,程序死锁,内存泄漏等,这个时候从客户那里收集程序Dump,本文主要描述了几种收集dump的工具。adplus收集Dumpadplus是windows 调试工具集中的一个工具,安装了WDK或者Windbg后在安装...

2017-01-12 15:14:10

阅读数 631

评论数 0

Windbg局部变量显示不正确

Windbg中局部变量显示不正确

2016-08-17 13:25:53

阅读数 1270

评论数 0

存储型跨站脚本攻击

XSS跨站脚本攻击(Cross Site Script, XSS),是最常见的Web应用应用程序安全漏洞之一,也是OWASP 2013 Top 10之一。 XSS通常来说就是在网页中嵌入恶意代码, 通常来说是Javascript,当用户访问网页的时候,恶意脚本在浏览器上执行。存储型XSSXSS主要...

2016-08-10 22:06:18

阅读数 10723

评论数 2

OWASP Mutillidae的安装

OWASP Mutillidae介绍OWASP(Open Web Application Security Project)是一个开源的、非盈利性的全球性安全组织。由全球的会员共同推动安全标准、安全测试工具、安全指导手册等应用安全技术的发展。OWASP也有中国的官方网站, 在这里你也可以关注到OW...

2016-08-08 13:51:30

阅读数 5366

评论数 0

Windbg调试----Windbg入门

Windbg简单来说就是一个Windows下对用户态/内核态的程序进行调试,以及对Core Dump文件的分析。对于Crash,资源泄露,死锁等问题的分析,Windbg是一个强有力的利器。相关资料本人也是在维护和开发产品的过程中使用过Windbg,但并未对Windbg进行过系统和深入的学习,也通过...

2016-08-05 13:26:41

阅读数 35109

评论数 1

Visual Studio的工程依赖

今天在查看Visual Studio中A工程的时候,发现在VS链接页面的Command链接了B.lib静态库,可是我找遍了配置选项,也没找到配置的地方啊!!!经过探索发现,原来是工程依赖隐含了这个条件。 也就是说工程依赖至少实现了一下两个功能:       (1) 定义了工程编译的顺序,比如A工...

2015-10-09 16:23:11

阅读数 1824

评论数 0

从图看Linux问题分析的工具

Brendan是Joyent的首席性能分析工程师,在2013年初发了一个关于Linux性能分析和工具详解的书,或者称其为文档吧。无论在性能分析,还是在Linux中其他问题分析,也许都会用到下图所标识的工具。 比如网络分析时会用到tcpdump, traceroute, netstat等工具;I/O...

2015-09-14 14:35:33

阅读数 556

评论数 0

GDB读取动态库中定义的全局变量错误

最近看了一篇getopt使用的文章,为了追踪其执行的逻辑,于是采用GDB挂载调试的方式进行查看。但却出现了GDB打印全局变量optind的时候出现错误。 问题发现和描述       首先optind是使用getopt时候的全局变量,表示使用getopt时候的下一个argv的指针索引。在应用程序调试...

2015-09-04 13:23:03

阅读数 1710

评论数 0

Windows文件换行符转Linux换行符

前段时间,有个朋友碰到由于Windows的换行符和Linux换行符不一样,导致程序编译不通过。这个问题之前自己也碰到过,网上资料也蛮多,不过还是借此总结总结,因为发现总结+实践的方式能够让自己更好的提升。 操作系统文件换行符       首先介绍下,在ASCII中存在这样两个字符CR(编码为1...

2015-08-21 18:06:16

阅读数 16019

评论数 1

程序RPC 1726错误问题的追踪

最近在客户环境中碰到了一个头疼的问题,一个节点通过RPC连接到另一个节点成功,但是在发送RPC报文的时候,却返回了1726错误。 错误信息       先来看看MSDN的解释,"这个远程调用失败了",这句话信息含量真是太少了啊,出现错误我肯定知道是远程调用失败了啊。 RP...

2015-08-21 11:08:19

阅读数 1350

评论数 0

<<程序员的自我修养>>第二章读书读书笔记----静态链接

最近搞了一个Linux爱好者的微信订阅号,以Linux平台为主,定期也会分享一些网友的博文,和技术经验。因为网络文章,不和博主沟通,没法随意转发分享,如果您方便让您的经验一起分享,请您留下博客地址~~~以下是微信的订阅号,欢迎关注和讨论:          对一个不善写作的人来说,写一篇博客着...

2015-08-03 13:20:33

阅读数 858

评论数 0

<<程序员的自我修养>>第一章读书读书笔记----从hello world说起

在读《程序员自我修养》这本书之前,是准备写读书笔记的,一来加深自己对本书的理解,而来可以和看到笔记的网友们互相讨论。当读到第三章的时候,心理暗暗偷懒,不想写博客了,要将自己的所读所理解的整理为一篇文章,确实会花费不少时间和精力,可又想了想了当初的目标和想法,还是决定写下去。   C语言Hello ...

2015-07-10 15:36:10

阅读数 1388

评论数 0

Loader Lock引起的一个Bug

在Windows中,让程序模块化实现的一种方式,就是让其实现为动态链接库。然后在主程序启动的时候隐式或者显示的去加载动态链接库。但是如果不恰当的编写动态链接库的DllMain函数,将会引起意想不到的Bug哦,比如典型的Loader Lock死锁问题。这不,我们产品中就碰到了一个由于Loader L...

2014-10-13 15:29:34

阅读数 3487

评论数 1

提示
确定要删除当前文章?
取消 删除