首页
学习
活动
专区
工具
TVP
发布

方亮

无聊时玩的各种技术
专栏作者
341
文章
357588
阅读量
35
订阅数
动态执行流程分析和性能瓶颈分析的利器——valgrind的callgrind
        在《内存、性能问题分析的利器——valgrind》一文中我们简单介绍了下valgrind工具集,本文将使用callgrind工具进行动态执行流程分析和性能瓶颈分析。(转载请指明出于breaksoftware的csdn博客)
方亮
2022-05-11
1K0
从0开始搭建编程框架——主框架和源码
一个良好的结构是“对修改关闭,对扩展开放”的。(转载请指明出于breaksoftware的csdn博客)
方亮
2020-08-02
6610
在windows程序中嵌入Lua脚本引擎--编写自己的Lua库
        在《在windows程序中嵌入Lua脚本引擎--建立一个简易的“云命令”执行的系统》一文中,我提到了使用Lua的ffi库,可以让我们像写C代码一样写lua程序。这是个非常令我们这些C程序员激动的事。但是我们使用ffi库写出来的程序往往比较大,因为我们可能要声明一些API的原型和结构体。比如我们看luajit的wiki中关于使用ffi调用kernel32的一个例子。(转载请指明出于breaksoftware的csdn博客)如果我们要使用
方亮
2019-02-28
2K0
代码打补丁的利器——diff和patch
        一般来说,如果我们在研发过程中需要对代码进行修改,是不需要通过打补丁的方式的,因为我们可以直接改动文件即可。但是如果针对一款要上线的产品,我们总不能在研发的电脑上编译通过后直接发布到线上的。(转载请指明出于breaksoftware的csdn博客)因为这样做有很多缺陷:
方亮
2019-01-16
1.9K0
一套使用注入和Hook技术托管入口函数的方案
        工作中,我们可能会经常使用开源项目解决一些领域中的问题。这种“拿来主义”是一种“专业人干专业事”的思想,非常实用。(转载请指明出于breaksoftware的csdn博客)
方亮
2019-01-16
9960
Golang反射机制的实现分析——reflect.Type类型名称
        现在越来越多的java、php或者python程序员转向了Golang。其中一个比较重要的原因是,它和C/C++一样,可以编译成机器码运行,这保证了执行的效率。在上述解释型语言中,它们都支持了“反射”机制,让程序员可以很方便的构建一些动态逻辑。这是C/C++相对薄弱的环节,而Golang却有良好的支持。本系列,我们将通过反汇编Golang的编译结果,探究其反射实现的机制。(转载请指明出于breaksoftware的csdn博客)
方亮
2019-01-16
1.4K0
内存、性能问题分析的利器——valgraind
        valgrind是一个知名的分析软件集。我们可以使用它进行内存、多线程及性能等各种问题的分析。它采用非侵入方式,所谓非侵入方式是指:我们不用在代码中插入分析工具的库。这对于开发者来说是友好的。因为如果要将工具编译到文件中,或者要调用其提供的一些API,才能进行问题分析,无疑增大了用户的学习和使用成本。(转载请指明出于breaksoftware的csdn博客)
方亮
2019-01-16
1.2K0
动态执行流程分析和性能瓶颈分析的利器——valgraind的callgrind
        在《内存、性能问题分析的利器——valgraind》一文中我们简单介绍了下valgrind工具集,本文将使用callgrind工具进行动态执行流程分析和性能瓶颈分析。(转载请指明出于breaksoftware的csdn博客)
方亮
2019-01-16
1.1K0
内存泄漏分析的利器——gperftools的Heap Checker
        在《内存问题分析的利器——valgraind的memcheck》一文中,我们介绍了如何使用valgrind分析各种内存问题。valgrind是基于模拟器的技术实现,而本文介绍的gperftools则是通过在用户代码中嵌入检测代码实现的。(转载请指明出于breaksoftware的csdn博客)
方亮
2019-01-16
5.7K0
VC下提前注入进程的一些方法2——远线程带参数
        在前一节中介绍了通过远线程不带参数的方式提前注入进程,现在介绍种远线程携带参数的方法。(转载请指明出处)
方亮
2019-01-16
8290
跨平台PHP调试器设计及使用方法——立项
        作为一个闲不住且希望一直能挑战自己的人,我总是在琢磨能做点什么。自从今年初开始接触PHP,我也总想能在这个领域内产生点贡献。那能做点什么呢?我经常看到很多phper说自己设计了一个什么框架,或者说自己搭建了一个什么系统。虽然这些对自己来说算是一种历练,但是这些对更多的人来说可能并没太多帮助。而我希望我能做的是可以帮助到更多人的东西。于是就有了标题中这个项目的立项。(转载请指明出于breaksoftware的csdn博客)
方亮
2019-01-16
5040
服务器架设笔记——搭建用户注册和验证功能
        之前介绍的Apache Httpd相关内容,都是些零散的知识点。而实际运用中,我们要根据不同的业务,将这些知识点连接起来以形成各种组合,来满足我们的需求。(转载请指明出于breaksoftware的csdn博客)
方亮
2019-01-16
1.4K0
WMI技术介绍和应用——Instance/Method Provider
        在《WMI技术介绍和应用——事件通知》一文中,我们提到了提供者(Provider)这个概念。我们还是要引入WMI的结构图(转载请指明出于breaksoftware的csdn博客)
方亮
2019-01-16
7530
Windows客户端C/C++编程规范“建议”——文件
说明:#include <>和#include “”导致编译器在搜索文件时,搜索的路径顺序不同。所以需要正确使用#include,以避免包含错了头文件。
方亮
2019-01-16
8060
服务器架设笔记——打通MySQL和Apache
        在《服务器架设笔记——使用Apache插件解析简单请求》一文中,我们已经可以获取请求内容。这只是万里长征的第一步。因为一般来说,客户端向服务器发起请求,服务器会有着复杂的业务处理逻辑。举个例子,大部分客户端软件都有日志模块。其中包含了用户的一些行为,比如你点击了某个按钮。客户端将该信息上报给服务端,服务端解析这些信息,并记录在案,以供运维和产品人员分析。而这种记录在案行为,一般不会是使用直接读写文件的方式,而是要使用数据库。所以打通数据库和服务器是非常重要的一环。(转载请指明出于breaksoftware的csdn博客)
方亮
2019-01-16
6560
服务器架设笔记——编译Apache及其插件
        之前一直从事Windows上的客户端软件开发,经常会处理和服务器交互相关的业务。由于希望成为一个全栈式的工程师,我对Linux上服务器相关的开发也越来越感兴趣。趁着年底自由的时间比较多,我可以对这块做些技术研究。虽然这些知识很基础也很老,但是对我这样的新人来说还是挺有意思的。
方亮
2019-01-16
1.1K0
使用windbg抓取崩溃文件和分析的过程
        在软件编程中,崩溃的场景比较常见的。且说微软技术再牛X,也是会出现崩溃的场景。网上有一段Win98当着比尔盖茨蓝屏的视频非常有意思。(转载请指明出于breaksoftware的csdn博客)         我们身边的很多软件都引入了dump生成和收集机制。但是一般情况下,它们都是生成minidump。因为minidump文件相对来说很小,方面我们收集上来进行分析。但是Minidump保存了很少的信息,在一些场景下,可能不能协助我们准确快速定位问题。
方亮
2019-01-16
2K0
在windows程序中嵌入Lua脚本引擎--使用VS IDE编译Luajit脚本引擎
        前些天听到一个需求:某业务方需要我们帮忙清理用户电脑上的一些废弃文件。同事完成这个逻辑的方案便是在我们程序中加入了一个很“独立”的业务逻辑:检索和删除某个程序产生的废弃文件。试想,该“独立”的逻辑之后会如何?被删掉?一直保留着?不管如何,这都意味着我们代码需要做修改,我们生成的二进制文件将产生差异,我们要为了这个需求要发一次版本。想一想客户端升级这样一个漫长且耗流量的过程,我甚至认为为了这么一个需求去浪费这些非常不值得。那么有没有一种比较好的办法,让我们不修改代码,不发布版本就能完成这样的“一次性”需求呢?当然有!是否记得若干年前,某个大公司和某个大公司吵架,当时那位新上任的CEO说某某公司可以“云暗杀”。且这种“暗杀”是一次性的,做完后可以销毁证据,且非常难以捕捉。我没有考究这个说法,但是从技术层面来说,这样的技术可以说并不复杂。那如何实现呢?就是本系列文章中讨论的:在程序中嵌入Lua脚本引擎。(转载请指明出于breaksoftware的csdn博客)
方亮
2019-01-16
2.7K0
一种解决运行程序报“应用程序配置不正确”的问题
        在我们开发工程中,可能有些情况下,不能在本机进行调试。这个时候我们一般会使用VM(vmware)建立一个虚拟机环境,然后把编译过的程序放在该虚拟机环境下执行调试。可是在某些情况下,不管我们编译的是debug还是release版本,在虚拟机环境中都会报“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。”(The application has failed to start because its side-by-side configuration is incorrect.Please see the application event log or use the command-line sxstrace.exe for more detail.)这样的错误。转载请标明出处。
方亮
2019-01-16
1.1K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档