最近在分析一个进程崩溃的严重问题,其中有些过程分析需要对ebp, esp 有清晰的理解,对于ebp 和esp 相信大家都很熟悉了,但是为了使本文自成体系,我还是解释一下。ebp--栈底指针esp--栈顶指针如图所示,简化后的代码调用过程如下:void Layer02(){ int b = 2;}vo...
分类:
编程语言 时间:
2014-08-10 17:59:20
阅读次数:
183
程序的OEP,一开始以 push ebp 和mov ebp esp这两句开始。原因:c程序的开始是以一个主函数main()为开始的,而函数在访问的过程中最重要的事情就是要确保堆栈的平衡,而在win32的环境下保持平衡的办法是这样的:1.让EBP保存ESP的值。2.在程序运行完毕的时候调用mov es...
分类:
其他好文 时间:
2014-08-10 17:59:00
阅读次数:
269
什么是coredump通常情况下coredmp包括了程序执行时的内存,寄存器状态,堆栈指针,内存管理信息等。能够理解为把程序工作的当前状态存储成一个文件。很多程序和操作系统出错时会自己主动生成一个core文件。怎样使用coredumpcoredump能够用在非常多场合,使用Linux,或者solar...
分类:
系统相关 时间:
2014-08-10 15:23:30
阅读次数:
3520
#include using namespace std;#include #include int main(){ int i,k,n,m; stacks; scanf("%d%d",&n,&m); while(n) { s.push(n%m); ...
分类:
其他好文 时间:
2014-08-09 21:08:59
阅读次数:
229
1,.reloadk 当前调用堆栈。u 当前正在执行的代码。2,~ 查看被调试进程中的线程信息每一行是一个线程的信息。第一行中,0 表示这个进程的编号;1ff4.1038 是 16 进制数字,前者是当前进程的进程 ID,后者是线程 ID;后面的信息是线程状态和 Teb 地址。第二行的线程编号前有一个...
分类:
数据库 时间:
2014-08-09 15:36:18
阅读次数:
289
总结第一句话:Java语言使用内存的时候,栈内存主要保存以下内容:基本数据类型和对象的引用,而堆内存存储对象,栈内存的速度要快于堆内存。总结成一句话就是:引用在栈而对象在堆。...
分类:
编程语言 时间:
2014-08-09 00:15:56
阅读次数:
294
一.值类型和引用类型1>值类型和引用类型将我们学过的数据类型划分成了两部分. 划分的依据是不同类型的数据在内存中(堆栈)存储的结构不同.2>值类型:所有的数值类型:long int short byte ulong uint ushort sbyte decimal duoble float cha...
分类:
其他好文 时间:
2014-08-08 23:42:46
阅读次数:
374
本篇体验Visual Studio的10个调试技巧,包括: 1、插入断点和断点管理2、查看变量信息3、逐语句F11,逐过程F10,跳出Shift+F114、查看堆栈信息5、设置下一条执行语句6、调试时修改局部变量并继续调试7、线程管理8、为断点设置条件9、使用命令窗口测试方法10、变量的历史记录 有...
分类:
其他好文 时间:
2014-08-08 21:09:16
阅读次数:
377
这两天有同学使用数据校验工具时发现进程hang住了,也不知道什么原因,我简单看了看进程堆栈,问题虽然很简单,但能导致程序hang住,也一定不是小问题。简单说明下程序组件的结构,程序由两部分构成,dbchk和dbchk_inner,dbchk采用python代码实现,dbchk_inner采用C...
分类:
其他好文 时间:
2014-08-08 20:46:26
阅读次数:
307
第四章
硬件访问
从站堆栈代码可执行在多个平台上和控制器架构。因此, 源代码包含多个定义来满足特定的硬件需求。 本章描述了硬件的具体配置和硬件访问的功能 使用通用的堆栈层
有可能用到的
SlaveInformation
Define: VENDOR_NAME EtherCAT slave vendor name
EtherCAT从站供应商名称
Define: DEV...
分类:
其他好文 时间:
2014-08-08 16:02:56
阅读次数:
612