加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在我的C程序中使用gdb需要帮助

发布时间:2020-12-16 07:01:42 所属栏目:百科 来源:网络整理
导读:我正在学习汇编语言. 我正在使用gdb来了解如何从编写的C代码中获取信息. ?我试图在每行的开头看到rip寄存器,看看如何 许多字节的机器代码都在这个程序的每个C语句中? 有谁能告诉我gdb中的命令找到这些? #include stdio.hint main(void) { register int wye
我正在学习汇编语言.
我正在使用gdb来了解如何从编写的C代码中获取信息.
?我试图在每行的开头看到rip寄存器,看看如何
许多字节的机器代码都在这个程序的每个C语句中?
有谁能告诉我gdb中的命令找到这些?

#include <stdio.h>

int main(void) {
    register int wye;
    int *ptr;
    int ex;

    ptr = &ex;
    ex = 305441741;
    wye = -1;
    printf("Enter an integer: ");
    scanf("%i",ptr);
    wye += *ptr;
    printf("The result is %in",wye);

    return 0;
}

解决方法

你可以做些什么来看你的程序的一些简短的例子. $是shell提示符,gdb>是gdb提示符,所以不要键入:

$gdb myprogram
    ... info about gdb and myprogram
gdb> disas main
    ... disassembly of the main function
gdb> break main
    ... sets a breakpoint in main; you see a message about this probably calling it breakpoint 1
gdb> run
    ... program starts and stops immediately at the start of main
gdb> i r
    ... lots of info about register contents
gdb> p $rip
    ... current instruction pointer (assuming x86_64)
gdb> s
    ... program runs for one source line.
gdb> p $rip
    ... ip has advanced a bit.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读