如何在Google Apps Script调试器中修改变量值
GDB调试GAS编译程序时修改运行时值的方法
首先澄清概念:GAS(GNU Assembler)是GNU汇编编译器,本身无调试能力,你需要使用GDB调试GAS编译生成的程序,调试过程中修改变量/寄存器值的功能完全支持,具体操作如下:
前提准备
编译GAS汇编代码时添加-g参数生成调试符号,示例编译命令:
as -g your_code.s -o obj.o ld obj.o -o exec_file
使用GDB启动待调试程序:gdb ./exec_file
常用修改操作
- 修改已定义符号的变量值
如果你的汇编代码中定义了带符号名的变量,直接使用set variable命令赋值即可,例如将名为counter的int类型变量修改为20:set variable counter = 20 - 修改指定内存地址的值
已知变量内存地址的情况下可以直接修改地址对应的值,例如将地址0x402000处的4字节整数修改为100:set *(int *)0x402000 = 100 - 修改寄存器值
如需修改寄存器存储的数值,例如将rax寄存器的值修改为0xff:set $rax = 0xff
验证修改结果
修改完成后可以用print命令确认修改生效,示例:print counterprint $raxprint *(int *)0x402000
内容的提问来源于stack exchange,提问作者Joel W
相关产品推荐
相关产品推荐

