C++ 如果地址已知,如何获取指针变量的名称?
当我运行我的项目时,它会加载并开始运行,但过了一段时间就会崩溃。我得到的日志如下: 尝试释放无效指针0x2df2fc6b9000 现在这是chromium代码,我不知道在这个代码库中程序哪里出错了。因此,我想知道是否有可能获得变量名,并给出地址C++ 如果地址已知,如何获取指针变量的名称?,c++,pointers,dereference,C++,Pointers,Dereference,当我运行我的项目时,它会加载并开始运行,但过了一段时间就会崩溃。我得到的日志如下: 尝试释放无效指针0x2df2fc6b9000 现在这是chromium代码,我不知道在这个代码库中程序哪里出错了。因此,我想知道是否有可能获得变量名,并给出地址0x2df2fc6b9000。谢谢。你不能 例如: int i = 10; int* p1 = &i; int* p2 = p1; 给定&i,无法说变量是p1或p2。尽管我们关心,可能根本没有任何p1或p2 该错误消息强烈表明代码未正确使用内存。
0x2df2fc6b9000
。谢谢。你不能
例如:
int i = 10;
int* p1 = &i;
int* p2 = p1;
给定&i
,无法说变量是p1
或p2
。尽管我们关心,可能根本没有任何p1
或p2
该错误消息强烈表明代码未正确使用内存。您必须尝试将代码减少到一个新的级别。在此过程中,您可能会找到问题的根源。您不能
例如:
int i = 10;
int* p1 = &i;
int* p2 = p1;
给定&i
,无法说变量是p1
或p2
。尽管我们关心,可能根本没有任何p1
或p2
该错误消息强烈表明代码未正确使用内存。您必须尝试将代码减少到一个新的级别。在此过程中,您可能会找到问题的根源。如果在调试器中运行包含符号信息的调试版本的程序,您可能会找到变量的名称。调试器可能会在应用程序崩溃的程序中的某个点显示堆栈上的符号列表以及相应的地址。在本例中,您必须找到一个指针变量,该变量的值包含在错误中
调试器还应显示发生错误的行。通过查看此行周围的代码可能比通过内容搜索有问题的变量更容易找到错误
如果程序中没有包含符号信息,则无法将内存位置与变量名称进行匹配。如果在调试器中运行包含符号信息的调试版本,则可能会找到变量名称。调试器可能会在应用程序崩溃的程序中的某个点显示堆栈上的符号列表以及相应的地址。在本例中,您必须找到一个指针变量,该变量的值包含在错误中
调试器还应显示发生错误的行。通过查看此行周围的代码可能比通过内容搜索有问题的变量更容易找到错误
如果程序中不包含符号信息,则无法将内存位置与变量名相匹配。您需要使用调试器。您需要使用调试器。