最老的新技术:调试Oracle技术实战-在堆栈中寻找异常宕库原因.pdf

最老的新技术:调试Oracle技术实战-在堆栈中寻找异常宕库原因.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最老的新技术:调试Oracle技术实战 在堆栈中寻找异常宕库原因 ebay 首要数据库工程师 吕海波(VAGE ) 内容简介 内容简介:  什么是调试Oracle技术  程序的机器级表示  断点  发现断点  神奇的等待事件:等待事件原理分析  案例 什么是调试Oracle技术 调试Oracle就是对Oracle进行逆向工程,再通俗点说,就是反汇编Oracle 。 相信听到这个结果的朋友,一定会认为: 什么是调试Oracle技术 调试Oracle就是对Oracle进行逆向工程,再通俗点说,就是反汇编Oracle 。 相信听到这个结果的朋友,一定会认为: 什么是调试Oracle技术 但其实不是这样的,Oracle 的逆向工程没有你想像中的哪么难。它是真正的纸老虎。 什么是调试Oracle技术:逆向工程 我们的目的,并不是要读懂Oracle每一条反汇编代码,我相信这不可能,代码量太 大了。我们只需要从反编代码找出我们感兴趣的片断即可。这样一来,难度就大大 下降,再借助现在优秀的调试工具,gdb/ mdb和DTrace,对于有开发功底的DBA来 说,可以说易如反掌。 调试Oracle技术有什么用 在开始之前,还要回答一个问题: 为什么要这么做?或者,调试Oracle有什么用。 搞这么难的东西有什么用? 调试Oracle技术有什么用 答案很简单,一是这东西其实没相像中哪么难。二是在我做DBA的职业生涯中,总 有些疑难问题,让我有求神拜佛的冲动。 什么是调试Oracle技术 就像这样: 调试Oracle技术有什么用 或这样: 什么是调试Oracle技术 告诉浙江地区DBA一个经验, 我2010年初,去灵隐上完香之后,大半年内,事故率没有下降 2010年底去普陀山上完香之后,大半年内事故率下降了50% 什么是调试Oracle技术 除了去普陀山上香外,我想,我也要做点什么。不能老是麻烦神仙帮忙。 于是,我就开始了我的“调试Oracle ”之旅。 程序的机器级表示程序的机器级表示 让我们从一个简单的小例子开始吧。让我们从一个简单的小例子开始吧。 有个笑话,程序员准备练书法,提起狼毫笔,占足墨汁,在徽州宣纸上写下饱满的有个笑话,程序员准备练书法,提起狼毫笔,占足墨汁,在徽州宣纸上写下饱满的 Holle word 程序的机器级表示 很可惜,我们不能Hello Word开始,它包含的元素太少了,我们从下面这个例子开 始。 它包含几个对我们来说最基本的元素:变量(局部变量、全局变量)、函数调用、 参数传递。 int result; void add(int p1, int p2) { result=p1+p2; return ; } int main() { int a,b; a=1; b=2; add(a,b); printf(%d+%d=%d\n,a,b,result); return 0; } 这个程序很简单,先了解一下它是干吗的。然后,我们就先从它开始。 程序的机器级表示 它包含几个对我们来说最基本的元素:变量(局部变量、全局变量)、函数调用、 参数传递。 int result; main: pushq %rbp

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档