在 Clion 2017.3.4 中调试时的反汇编视图 - 这是什么意思?

Disassembly view while debugging in Clion 2017.3.4 - what does it mean?

我目前在 C99 中使用 Clion 2017.3.4。

在尝试 运行 和调试我的程序时,调试器跳转到 'disassembly view',我想知道问题出在哪里。

基本上,该函数获取一个季节(类型)、一个输入字符串 (season_info) 和一个指向输入字符串中不同位置的索引。

函数应该 return 年份作为 整数 ,而输入是字符串

当我进入 free() 行时会显示反汇编视图。 任何想法是什么问题? 反汇编视图通常是什么意思?

int GetSeasonYear(Season season, const char* season_info, int *index){ 

char* tmp_str = GetStringByLine(season_info, index);
if(tmp_str == NULL){
    SeasonDestroy(season);
    return 0;
}

season->season_year = atoi(tmp_str);
free(tmp_str);

return 1;

}

这是 GetSeasonYear 函数内部使用的函数(虽然我检查过它工作正常)。

char* GetStringByLine(const char* season_info, int* index){ // change back to static

int i = 0;

while(season_info[i] != '\n'){
    i++;
}

char* tmp_str = malloc(sizeof(char)*(i+1));
if(tmp_str == NULL){
    return NULL;
}

memcpy(tmp_str, season_info, sizeof(char)*i);
tmp_str[i+1]='[=11=]';

*index = i;

return tmp_str;

}

谢谢

free()是调用系统释放内存。它很可能是在高度优化且没有调试符号的情况下编译的,因此调试器可以做的最好的事情就是向您展示它正在执行的反汇编机器代码。 基本上,这是正常的。像那样介入通话也没有什么好处。

您正在进入一个功能(免费),您要么 a) 没有来源 要么 b) 有源但是调试器找不到它。