diff --git a/app/main.d b/app/main.d index 197f055..1912e9a 100644 --- a/app/main.d +++ b/app/main.d @@ -342,12 +342,19 @@ import adbg.include.capstone : capstone_dyn_init, cs_version; printf("Capstone: "); - if (capstone_dyn_init() == false) { + if (capstone_dyn_init()) { + puts("error"); + version (Trace) { + import adbg.error : trace; + import bindbc.loader.sharedlib : errors; + foreach (e; errors) { + trace("%s", e.message); + } + } + } else { int major = void, minor = void; cs_version(&major, &minor); printf("%d.%d\n", major, minor); - } else { - puts("error"); } exit(0); diff --git a/src/adbg/include/capstone/v4.d b/src/adbg/include/capstone/v4.d index c71be9a..2eeccfc 100644 --- a/src/adbg/include/capstone/v4.d +++ b/src/adbg/include/capstone/v4.d @@ -814,7 +814,7 @@ __gshared pcs_op_index cs_op_index; __gshared pcs_regs_access cs_regs_access; -size_t capstone_dyn_init() +bool capstone_dyn_init() { version (Windows) { @@ -841,7 +841,8 @@ foreach (libname; libraries) { if ((lib = load(libname)) == invalidHandle) - return true; + continue; + break; } bindSymbol(lib, cast(void**)&cs_version, "cs_version"); @@ -866,7 +867,7 @@ bindSymbol(lib, cast(void**)&cs_op_index, "cs_op_index"); bindSymbol(lib, cast(void**)&cs_regs_access, "cs_regs_access"); - return errorCount(); + return errorCount() > 0; } } diff --git a/src/adbg/v1/debugger/debugger.d b/src/adbg/v1/debugger/debugger.d index 9863959..c247992 100644 --- a/src/adbg/v1/debugger/debugger.d +++ b/src/adbg/v1/debugger/debugger.d @@ -898,7 +898,7 @@ //TODO: Adjust memory region permissions like libscanmem does - version (Trace) trace("entry: %zx %s", range_start, path.ptr); + version (Trace) trace("entry: %zx %s", range_start, map.name.ptr); map.base = cast(void*)range_start; map.size = range_end - range_start; diff --git a/src/adbg/v2/debugger/memory.d b/src/adbg/v2/debugger/memory.d index e5bf5f5..af33e1e 100644 --- a/src/adbg/v2/debugger/memory.d +++ b/src/adbg/v2/debugger/memory.d @@ -391,7 +391,7 @@ //TODO: Adjust memory region permissions like libscanmem does - version (Trace) trace("entry: %zx %s", range_start, path.ptr); + version (Trace) trace("entry: %zx %s", range_start, map.name.ptr); map.base = cast(void*)range_start; map.size = range_end - range_start;