Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在gdb |平台linux下调试汇编代码_C_Debugging_Assembly_Gdb_Recommendation Engine - Fatal编程技术网

C 在gdb |平台linux下调试汇编代码

C 在gdb |平台linux下调试汇编代码,c,debugging,assembly,gdb,recommendation-engine,C,Debugging,Assembly,Gdb,Recommendation Engine,我是在gdb下调试汇编代码的新手 我如何运行我的汇编代码(在虚拟位置)而不实际运行它 如果它需要一个值,我如何插入一个值来查看它在switch语句中的每种情况下是如何工作的 例句:我不能给出组装的例子,所以我用c语言给出 scanf ( "%d",&y); while ( y ) { ... scanf( "%d", &x); switch ( x ) { case 1: ...

我是在gdb下调试汇编代码的新手

  • 我如何运行我的汇编代码(在虚拟位置)而不实际运行它
  • 如果它需要一个值,我如何插入一个值来查看它在switch语句中的每种情况下是如何工作的

    例句:我不能给出组装的例子,所以我用c语言给出

        scanf ( "%d",&y);
        while ( y ) {
             ...
             scanf( "%d", &x);
             switch ( x ) {
    
             case 1: ...
             case 2: ...
             case 3: ...
             }
    
         }
    
  • 如果需要,如何知道寄存器中存储的值

  • 如何将所有显示打印到.txt文件?换句话说,假设我已经启动了我的程序,并且它在没有断点的情况下运行,然后我想将这个显示打印到.txt文件中。所以,我可以在纸上工作。如你所知,纸张比计算机更强大:)
我知道你们中的一些人会说“去阅读gdb教程或手册页”。但是,我找不到任何好的教程,用例子来解释命令是如何工作的。只有当我的眼睛看到示例时,我的大脑才会工作:)

平台是Linux 工具是终端/控制台

编辑:请给我一个好的网站,包括良好的文件,当然,如果你知道

给我一些关于“如何[捕]鱼”,“而不是如何吃鱼”的文档。

看看这一页:-它是为ARM汇编程序设计的,大多数应该适合所有汇编程序。您可以将程序计数器设置为所需的指令,将值放入寄存器、查看寄存器、查看内存等。不要打印出来,我们几乎已经没有树了。

我如何在不实际运行汇编代码的情况下运行汇编代码

嗯,呃,什么

如果它需要一个值,我如何插入一个值来查看它在switch语句中的每种情况下是如何工作的

set which=某个表达式

请记住,寄存器有一个$sigil(例如:
$eax

如果需要,如何知道寄存器中存储的值

所有登记册:

info reg
对于特定寄存器

info reg $eax

等等

如何将所有显示打印到.txt文件?换句话说,假设我已经启动了我的程序,并且它在没有断点的情况下运行,然后我想将这个显示打印到.txt文件中。所以,我可以在纸上工作。如你所知,纸张比计算机更强大:)


当你有一条命令时,请放心,嗯,呃,什么?假设我的程序在互联网上工作。然而,我不希望,当我在gdb中运行我的程序时,它会向服务器发送一条消息。我正在试图找出bug隐藏的地方。我可能会运行它很多次。试着理解我:)换句话说,它可能在虚拟的地方运行,但我不希望该程序向web发送消息。+1尽管像这样的链接对于OP的问题更为具体
p $eax
p/x $eax
set logging file foobar.out
set logging on