C 在gdb |平台linux下调试汇编代码
我是在gdb下调试汇编代码的新手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: ...
- 我如何运行我的汇编代码(在虚拟位置)而不实际运行它
- 如果它需要一个值,我如何插入一个值来查看它在switch语句中的每种情况下是如何工作的
例句:我不能给出组装的例子,所以我用c语言给出
scanf ( "%d",&y); while ( y ) { ... scanf( "%d", &x); switch ( x ) { case 1: ... case 2: ... case 3: ... } }
- 如果需要,如何知道寄存器中存储的值
- 如何将所有显示打印到.txt文件?换句话说,假设我已经启动了我的程序,并且它在没有断点的情况下运行,然后我想将这个显示打印到.txt文件中。所以,我可以在纸上工作。如你所知,纸张比计算机更强大:)
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