Компилирах V8 на Ubuntu 14.04 и сега се опитвам да взема примера hello_world.cc работи, но когато го изпълня, получавам Segmentation fault (core dumped)
.
Ето моя източник за hello_world.cc:
#include <v8.h>
using namespace v8;
int main(int argc, char* argv[]) {
// Get the default Isolate created at startup.
Isolate* isolate = Isolate::GetCurrent();
// Create a stack-allocated handle scope.
HandleScope handle_scope(isolate);
return 0;
}
Следвайки инструкциите, ето командата, която използвах за изграждане на hello_world.cc в изпълним файл:
g++ -Iinclude -g hello_world.cc -o hello_world -Wl,--start-group out/x64.debug/obj.target/{tools/gyp/libv8_{base,snapshot},third_party/icu/libicu{uc,i18n,data}}.a -Wl,--end-group -lrt -lpthread
Обърнете внимание, че в допълнение към инструкциите трябваше да добавя флаг -lpthread
, за да го накарам да компилира и -g
, за да включа символите за отстраняване на грешки.
Ето изхода от програмата:
$ ./hello_world
Segmentation fault (core dumped)
И ако стартирам gdb hello_world core
, получавам:
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./hello_world'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00000000004148bb in v8::HandleScope::Initialize (this=0x7fff9b86a110, isolate=0x0) at ../src/api.cc:572
572 prev_next_ = current->next;
Ред 572 от src/api.cc е тук
snapshot_blob.bin
от предишна инсталация v8, възможно е моментната снимка да е повредена или друг по-малко очевиден проблем, но това е улика за всеки друг, който се сблъсква с този проблем. - person wizebin   schedule 31.12.2017