【问题标题】:Finding the address of a main function local variable查找主函数局部变量的地址
【发布时间】:2017-01-18 20:40:18
【问题描述】:

假设我们有以下 C 代码:

#include<stdio.h>
int main(){
  char *a = "askakasd";
  return 0;
}

我试图找到我的局部变量“a”,但我不知道如何在此输出中识别它,其中 p 是编译的 C 代码:

【问题讨论】:

  • 它可以被优化出来,因为它从未被使用过。
  • @Arkadiy,你的回答和我的问题有什么关系?不过,这是一篇有趣的帖子。
  • “您的问题无法回答,因为它依赖于不正确的假设”。此外,阅读《黑客词典》对你的灵魂有好处。

标签: c nm


【解决方案1】:

它不在那里。由于代码在执行时无法判断它是否存在,因此链接器将其删除以节省空间。

【讨论】:

  • 所以如果我这样使用,printf("%s", a),仍然不会出现什么。我不得不问你,我怎样才能在 nms 输出中得到一个描述“a”存储位置的行?
  • 您可以将char * a ="askaskasd"; 移到main 之外,强制公开该名称。
猜你喜欢
  • 1970-01-01
  • 2014-12-16
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
  • 2011-10-17
  • 1970-01-01
相关资源
最近更新 更多