This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS:MinGW GCC 导致 CDT 调试停止

Guru**** 2616675 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/651159/ccs-mingw-gcc-causes-cdt-debugging-to-halt

工具/软件:Code Composer Studio

大家好、

为什么从 CCS 调试器中收到此错误消息:

在"/home/keith/src/mingw/gcc-build/gcc-6.3.0-mingw32-cross-native/mingw32/libgcc/../../../src/gcc-6.3.0/libgcc/config/i386/cygwin.S 上找不到源文件
找到该文件或编辑源查找路径以包含其位置。 

如何编辑源查找路径?

我正在使用 GDB 将 CCSv7调试器作为本地 C/C++运行:

这似乎使路线变得混乱。 我正在使用 MinGW 工具链、并且我还安装了 Cygwin、因此我猜 CCS 正在查看我的路径 var 以查找库?

我在 Windows10 ENV 路径中没有看到任何东西可以指向 cygwin。

谢谢、

Scott

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    看起来这可能是 gdb 问题。 我运行 gdb 单机版(cygwin 内部)、并遇到类似的错误:

    29. float buffer[b];//input buffer or shift register
    (gdb) s
    __chkstk_ms () at /usr/src/debug/gcc-6.4.0-4/libgcc/config/i386/cygwin.S:137
    /usr/src/debug/gcc-6.4.0-4/libgcc/config/i386/cygwin.S:没有此类文件或目录。
    

    显然、gdb 不喜欢将缓冲区压入堆栈。 因此、我将其更改为动态分配的数组:

    float*缓冲区;
    buffer =(float *) malloc (sizeof (float)*b); //分配浮点数
    

    现在 gdb 起作用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Scott

    通常情况下、像在 Eclipse/CCS 中那样的错误措辞意味着代码在某个地址处停止、并且调试器无法找到与该地址匹配的源代码。 从符号中、它知道所查找文件的名称、并提示您指向该文件。 当程序在系统库内停止时、我们通常会在 CCS 中看到这一点。

    此致、
    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我明白了、谢谢。 因此、我认为这意味着这与 CCS 无关(很抱歉在这里发布!)。

    对于遇到类似问题的任何其他人来说、我认为这个问题的根本原因是我试图声明一个具有非常量数组大小的本地"自动"数组变量。 例如:

    void array_function (int* arr、int size){
    int buffer[size];//工作...有时!
    INT I;
    针对(I = 0;i <size; i++) buffer[i] = arr[i]; } int main(void) { const int n = 5; int a[] = { 1, 2, 3, 4, 5 };
    
    
    
    
    
    
    
    array_function (a、n);
    return 0;
    }
    

    有趣的是、g++没有抱怨它、它按预期运行:

    G++-std=c++11 -Wall test.c 

    但 Visual Studio 会发现以下错误:

    谢谢、

    Scott

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Scott、

    不用担心在这里发布它。 如果其他 CCS 用户首先尝试在主机上建模、则可能会运行相同的操作。

    此致、
    John