У меня есть код ниже.
cat sample.c
#include<stdio.h>
#include "hello.c"int main()
{
hello_world();
return 0;
}
кошка привет
#include<stdio.h>
void hello_world()
{
printf("Hello World");
}
Используется команда Compliation:
g ++ -gxcoff -maix64 -shared -fpic -fpermissive -w -Ihello.c -o sample sample.c -Xlinker -e.main
выполнение
$ ./sample
Ошибка сегментации (coredump)
Я пытался отладить ядро. Но не мог найти много
$ dbx образец ядра
Type 'help' for help.
[using memory image in core]
reading symbolic information ...internal error: 1283-232 index("16;0;", ':') failed
internal error: 1283-232 index("16;0;", ':') failed
internal error: 1283-232 index("8;0;", ':') failed
internal error: 1283-228 expected char ',', found ';-31,448,256;;'
internal error: 1283-228 expected char ';', found ',256;;'
internal error: 1283-232 index("256;;", ':') failed
Segmentation fault in . at 0x7c0802a6f8010010
0x7c0802a6f8010010 (???) warning: Unable to access address 0x7c0802a6f8010010 from core
Пожалуйста, помогите мне, как решить эту проблему дампа ядра
g++ -gxcoff -maix64 -shared -fpic ...
Выше команда строит общая библиотека, не исполняемый файл, который вы можете запустить. Удалить -shared
от него, а также -Xlinker -e.main
, и это должно просто работать.