阿星

此人很懒,啥都没写

所在地区 : 中国-辽宁-沈阳
加入时间 : 2016-11-29
最近登录 : 2017-01-22 下午 13:51
我的母语 : 中文
第一外语 : 英文 ( A2 级)
资格证书 : <无>

关注的频道

翻译 0 段
翻译 50 段
翻译 0 段
翻译 0 段

最新动态

可知, 如果程序员,有了这份基本保证。做自己想做的。 他们都很有创造力
阿星 吱了一声
11小时前
够积分了 。 换礼物去
22. 一个更好的解决方法 我一直在调试输出 GitHub,特别是任职为BPF工程师之后,Alexei Starovoitov,在LLVM的内部也非常熟悉,其根本原因是LLVM的bug。当我把写和返回弄混的时候,他建议把LLVM的 -...
再也没有“??“了,但是也没有更大的帮助。 python调试程序包添加了GDB的其他功能。现在我们可以看看Python回溯: ... 这是python的资源列表: 这确定是我们的Python代码,我们执行断点到了段错误。这真的很好! ...
又来一个崩溃。我通过这种方式再次得到想要的结果。 浏览一点代码后,再试一次。如果父函数也参与,我想试着 RET 两次,这是一个容易的实验: 屏幕空白和暂停…然后重绘: Wow! 它正常运行了!
21. 修改返回口径 我要尝试另一种类似黑客的写入,但这次是改变指令路径,而不是数据。 警告:查看以前的警告, 这里也适用。 我会把我们的断点之前 set_curterm() 设置为0x0,然后发出一 RET (return的简写),...
20. 条件断点 在上一节中,我不得不使用三次继续达到断点右侧的调用上.。如果是成百上千的调用,然后我会用条件断点。下面是一个例子。 我会像往常一样运行,在 set_curterm() 中设置中断: 现在我要把断点1做为条件断点,因此...
(因为在这一断点上我有安装调试信息,在这种情况下不需要我指定寄存器,我可以用“termp”这个变量名来set_curterm()寄存器 ,代替 $rdi。) %rdi现在出栈了,所以这些寄存器可以继续。 好的,我们继续执行 set_c...
我要跑GDB, set_curterm()上设置一个断点,然后把它带到零的调用: 在这一点上,我会用 set 命令重写内存和替换为零用以前的方法:ofset_curterm() 这个地址0xbecb90,希望它仍然有效。 警告:写内存...
19. 写入内存 作为一个例题,并探讨可能的解决方法,我将修改正在运行的进程的内存以避免set_curterm() 为零 。 我要运行GDB,在set_curterm()上设置一个断点,然后把它带到零的调用上:  
24. 其他 虽然它可能看起来像为GDB写的综合功能,我真的没有写全,还有很多GDB命令。该help 命令将列出的主要部分: 然后你可以为每个命令类运行 help。例如,这里是断点的完整列表.: 这有助于说明GDB有多少命令,这让我觉...
25. 最后的话 嗯,这是一个令人讨厌的问题:一个LLVM bug断点破坏了ncurses导致Python程序段错误。但我用来调试它的命令和程序大多是例行的:查看堆栈跟踪,检查寄存器,设置断点,步进和浏览源代码.。 当我第一次使用GD...
17. 多个断点 我真的应该用gdb在 set_curterm() 开始断点,但我希望通过ftrace 和BPF做一个有趣的迂回。 回到当前运行模式: 好的,在这个断点上,我们可以看到, set_curterm() 正被一个termp...
18. 组件: cscope, take 2 更多的源代码浏览使用cscope,这次在LLVM。FileDescriptorHasColors 函数是这样的: 下面是早期版本中的代码: 他被set_curterm()调用一个空指针 变...
... 这里的TERMINAL是这样的: 嗯!现在 TERMINAL是大写的。伴随这个宏的出现,代码是不那么好读懂了... 好的,谁设置了 cur_term呢?记住,我们的问题是,它设置为零,也许是因为它未初始化或者被别人故意设置的。...
尝试打印 在libtinfo中打印set_curterm(): 执行成功。所以 set_curterm() 被执行过了,并且执行四次。最后一次是通过零,这似乎是要找的问题。 如果你想知道我是怎么知道%di 是第一个参数,然后它来自AM...
16. 组件: bcc/BPF 因为我们正在调试一个BCC的工具,cachetop.py,值得注意的是,BCC的trace.py和uprobe工具有些相像的地方: 是的,我们 正在使用BCC调试BCC ! 如果你刚入门 bcc, 得检...
15. 组件: perf-tools/ftrace/uprobes 我会在这时候使用GDB,但我忍不住选择 perf-tools 中的uprobe进行尝试,它是Linux和uprobes的合成产物。利用跟踪器的优点之一是,他们不暂停目...
阿星 吱了一声
1天前
放假也要翻译
9. 步进 我会一步一个指令(Si,stepi的简写)然后检查寄存器: 另一条线索。所以我们取消引用的空指针看起来像是在一个名叫“cur_term”的符号(p/a 是Print/a的简写,其中“/a”意思是格式化地址)。鉴于这是简短说...
显示更多