所以我试图调试一些代码,我所拥有的只是可执行文件.我知道寄存器包含需要知道的地址.有没有办法可以打印出从该地址开始到给定长度的十六进制值?
我尝试过的事情:
x/s $ebp
p (char) ($ebp)
p (char) (*ebp >> 4 )
p (char)*(%ebp 4 )
p $($ebp)
p $(%ebp + $0x1)
Run Code Online (Sandbox Code Playgroud)
普通指针算术不适用于寄存器吗?它说"历史是空的"是什么意思
你好,我是C的新手并且有一些困惑 fprintf
我正在尝试创建一个数据表,我希望它看起来像这样:
Rectangle A Rectangle B
SW corner Height Width SW corner Height Width
Run Code Online (Sandbox Code Playgroud)
我的大部分困惑都来自白色空间,肯定有一种比添加空字符串更好的方法.
所以我第一次尝试在C中使用Enumerated类型.所以我有一个枚举"变量?" 声明,我也有一个结构,其中包含一个Enumerated类型的变量(以及其他内容).最后我有一个静态数组,其中有一个元素包含每个枚举"类型?" 他们被宣布的顺序相同.我希望使用枚举类型作为数组的索引.
所以我的问题是我需要以某种方式将char*变量与枚举类型相关联.如果我知道Char*变量是枚举类型之一,是否有某种方法断言,而不必查看每个char来确定它是哪个特定枚举"选项"?
例:
enum example = {abc,def}
struct _strExample {
enum example letters;
....
};
typedef struct _strExample strEx;
static strEx Table[2] = {
{abc,...}
{def,...}
};
//Given char* "abc" , want either example.abc or 0 ( correct index of table)
Run Code Online (Sandbox Code Playgroud)
所以给定char*"abc"(不需要是char*),是否有一种简单的方法可以获得正确的枚举"类型?"(abc或def)或表的正确索引?我知道我可以检查char*中的所有单个字符并手动确定哪个枚举"类型?" 它是,但我将使用一大堆枚举变量,这种事情正是我试图避免的.任何有关枚举类型和/或我的设计的帮助或建议都将非常受欢迎.
我是一个入门课程,我对使用指针进行投射感到好奇.
有什么区别:
*(uint32_t*)(p)
(uint32_t)(*p)
Run Code Online (Sandbox Code Playgroud)
p
是一个指针.