Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Game Development
  4. The inferior stopped because it received a signal from the operating system. Signal name : SIGSEGV Signal meaning : Segmentation fault
Forum Updated to NodeBB v4.3 + New Features

The inferior stopped because it received a signal from the operating system. Signal name : SIGSEGV Signal meaning : Segmentation fault

Scheduled Pinned Locked Moved Unsolved Game Development
3 Posts 3 Posters 5.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    shashi prasad
    wrote on last edited by
    #1

    Hi All,

    i am using curl with QT for downloading file using url. i am getting bellow error.

    The inferior stopped because it received a signal from the operating system.

    Signal name :
    SIGSEGV
    Signal meaning :
    Segmentation fault

    code is simple.

        CURL *curl;
        FILE *fp;
        CURLcode res;
    

    char str[]="http://guest:p2guest@192.168.55.3/contents/2/clip/0711WH.xml";
    char * url=new char[255];
    memset(url,'\0',sizeof(url));
    memcpy(url,str,sizeof(str));
    char outfilename[FILENAME_MAX] = "home/roi/Desktop/page.html";
    curl = curl_easy_init();
    if (curl)
    {
    fp = fopen(outfilename,"wb");
    curl_easy_setopt(curl, CURLOPT_URL, url);
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
    res = curl_easy_perform(curl);
    curl_easy_cleanup(curl);
    fclose(fp);
    }
    return 0;

    }

    while debugging i am getting these error when controll comes to line

    res = curl_easy_perform(curl);

    please suggest me how to resolve it.

    Thanks
    Shashi

    A 1 Reply Last reply
    0
    • S shashi prasad

      Hi All,

      i am using curl with QT for downloading file using url. i am getting bellow error.

      The inferior stopped because it received a signal from the operating system.

      Signal name :
      SIGSEGV
      Signal meaning :
      Segmentation fault

      code is simple.

          CURL *curl;
          FILE *fp;
          CURLcode res;
      

      char str[]="http://guest:p2guest@192.168.55.3/contents/2/clip/0711WH.xml";
      char * url=new char[255];
      memset(url,'\0',sizeof(url));
      memcpy(url,str,sizeof(str));
      char outfilename[FILENAME_MAX] = "home/roi/Desktop/page.html";
      curl = curl_easy_init();
      if (curl)
      {
      fp = fopen(outfilename,"wb");
      curl_easy_setopt(curl, CURLOPT_URL, url);
      curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);
      curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
      res = curl_easy_perform(curl);
      curl_easy_cleanup(curl);
      fclose(fp);
      }
      return 0;

      }

      while debugging i am getting these error when controll comes to line

      res = curl_easy_perform(curl);

      please suggest me how to resolve it.

      Thanks
      Shashi

      A Offline
      A Offline
      ambershark
      wrote on last edited by ambershark
      #2

      @shashi-prasad First thing I see is that these lines don't do what you think they do:

      memset(url,'\0',sizeof(url));
      memcpy(url,str,sizeof(str));
      

      With that sizeof(url) you are only getting the sizeof a char * on your system which is 1. You aren't getting the "255" you are expecting. So when you call memcpy() you're not necessarily getting a null terminated url string.

      That is probably where your crash is. Throw it in a debugger and get a backtrace and it will show you where you're crashing.

      You're also leaking memory as you never clean up url.

      And finally, what's the point of setting char str[] and then memcpy it to another string url? As far as I can see that is the only place you use str. So you don't need a variable for it. And if you insist on one, you should use a const char *str = "whatever".

      And finally, the code you posted has absolutely no Qt in it. So you're in the wrong place to ask for help. This should be asked on a curl support forum. ;)

      My L-GPL'd C++ Logger github.com/ambershark-mike/sharklog

      1 Reply Last reply
      1
      • N Offline
        N Offline
        Nicolas Kogler
        wrote on last edited by Nicolas Kogler
        #3

        @shashi-prasad said in The inferior stopped because it received a signal from the operating system. Signal name : SIGSEGV Signal meaning : Segmentation fault:

        char * url=new char[255];
        memset(url,'\0',sizeof(url));
        memcpy(url,str,sizeof(str));

        Does Curl take ownership of the provided URL (i.e. it frees the memory after usage)? If not, simply do the following:

        char url[256];
        url[255] = '\0';
        memcpy(url, str, 255);
        

        If you have a local array which's size can be determined at compile-time, sizeof(your_array) will also yield the correct result. But if you instead use sizeof(your_array) with a dynamically allocated array which's size is variable, sizeof(char*) will return 1 on most systems. That's why I suspect your problem does not lie in that piece of code.

        After searching through the documentation of libcurl, I found the following (https://curl.haxx.se/libcurl/c/CURLOPT_WRITEDATA.html):

        "If you're using libcurl as a win32 DLL, you MUST use the CURLOPT_WRITEFUNCTION if you set this option or you will experience crashes."

        Your call:

        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);
        

        As you are passing a nullptr to this function, I highly suspect that this is the cause of the crash, since the function "curl_easy_perform" makes use of the callback you are required to register there.

        I hope I could help you!

        1 Reply Last reply
        1

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved