Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unknown ending signal when using debugger gdb

Tags:

c

macos

gdb

I have installed GDB on Mac OS X and to test that it works I have used this following C program.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {

    int *my_array = (int *) malloc(5 * sizeof(int));
    int i;
    for (i = 0; i < 1000000; i++) {
        my_array[i] = i;
    }

    free(my_array);

    return 0;

}

I have an error when compiling it, which is normal (segmentation fault)

However, when adding the -g flag in the compiling command and running gdb on my compiled program, I have this message after launching the command run

During startup program terminated with signal ?, Unknown signal.

Really don't know where it comes from. I have added a certificate to ensure that gdb works correctly on OS X but I have found nothing to fix this issue.

like image 842
Pierre P. Avatar asked Oct 18 '16 14:10

Pierre P.


4 Answers

From this answer: https://stackoverflow.com/a/40437725/1060955

This is how I easily fixed the issue. [Update: based on feedback received and yet to be verified, it seems that this solution works with macOS Sierra 10.12 but not with macOS Sierra 10.12.2]

See video instructions here

Quit gdb

Using your text editor e.g. Sublime Text, save a file called “.gdbinit” [Exclude the quotation marks] in your user folder.

In the file add the following: “set startup-with-shell off” [Exclude the quotation marks]

Save the file

gdb should now work

Sources

https://stackoverflow.com/a/40437725/1060955

https://discussions.apple.com/thread/7684629?start=0&tstart=0

Where is .gdbinit is located and how can I edit it?

https://sourceware.org/gdb/onlinedocs/gdb/Starting.html

like image 120
Parth Mehrotra Avatar answered Nov 07 '22 09:11

Parth Mehrotra


If you're on Sierra , that's expected. GDB isn't compatible with macOS Sierra , even the last release (7.12).

We should maybe wait for another release of GDB , or for another update for macOS in order to get the bug fixed.

like image 33
Houssem Nouira Avatar answered Nov 07 '22 09:11

Houssem Nouira


I installed gdb via Homebrew. At the end of the installation it says:

On 10.12 (Sierra) or later with SIP, you need to run this:

echo "set startup-with-shell off" >> ~/.gdbinit

This was necessary to make it work. Also I had to make sure the .gdbinit was set in the Eclipse Debug configuration

like image 11
Muhammad Avatar answered Nov 07 '22 10:11

Muhammad


For me it worked perfectly on MacOS Sierra Version 10.12.4 by just uninstalling and installing gdb as,

  1. Uninstall GDB

$ brew uninstall gdb

  1. Install GDB

$ brew install gdb

This will install latest gdb which is compatible with MacOS Sierra.

Hope this help to anyone!

like image 5
Pankaj Avatar answered Nov 07 '22 09:11

Pankaj