当我学习汇编时,我使用GDB的方式如下:
gdb ./a.out (a is a compiled C script that only prints hello world)
break main
run
info registers
Run Code Online (Sandbox Code Playgroud)
当我自己使用相同的CPU打印寄存器时,为什么我可以看到程序使用的寄存器?不应该使用GDB(或操作系统)覆盖寄存器,只显示覆盖的寄存器?我能想到的唯一答案是我的CPU是双核的,其中一个内核正在使用,另一个是为程序保留的.
是否可以取消引用void指针而不知道(在执行期间)知道位于内存中的项目的大小?或者,如果无法使用void指针,我如何访问特定的内存地址(位于堆中)并在执行特定字节数期间读取只知道的内容?
我如何使用变量(我将从用户输入获得)来调用函数?
char user_function[10];
scanf("%s", user_function);
user_function(); //Calls the function named user_function that the user typed
Run Code Online (Sandbox Code Playgroud)
(没有像这样的东西)
char user_function[10];
scanf("%s", user_function);
if( strcmp(user_function, 'printf()'))
printf();
Run Code Online (Sandbox Code Playgroud)