trying to debug a DLL by running a debugger on the parent program. on windows it works fine (windbg), however on linux (.so file) neither lldb nor gdb seem to pick up the symbols.
const std = @import("std");
pub fn build(b: *std.Build) void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
const sanlib = b.addModule(
"root",
std.Build.Module.CreateOptions{
.root_source_file = b.path("src/root.zig"),
.target = target,
.optimize = optimize,
},
);
const byondapi = b.addModule(
"byondapi",
std.Build.Module.CreateOptions{
.root_source_file = b.path("byondapi/_byondapi.zig"),
.target = target,
.optimize = optimize,
},
);
if (target.query.os_tag == .windows) {
byondapi.addLibraryPath(b.path("import"));
byondapi.linkSystemLibrary("byondapi", .{});
}
sanlib.addImport("byondapi", byondapi);
sanlib.addImport("sanlib", sanlib);
byondapi.addImport("sanlib", sanlib);
const lib = b.addLibrary(.{
.name = if (target.query.os_tag == .windows) "libsan" else "san",
.root_module = sanlib,
.linkage = .dynamic,
});
b.installArtifact(lib);
const test_byondapi = b.addTest(.{ .root_module = byondapi });
const test_sanlib = b.addTest(.{ .root_module = sanlib });
const run_test_byondapi = b.addRunArtifact(test_byondapi);
const run_test_sanlib = b.addRunArtifact(test_sanlib);
const test_step = b.step("test", "Run unit tests");
test_step.dependOn(&run_test_sanlib.step);
test_step.dependOn(&run_test_byondapi.step);
}
compiled through zig build -Dtarget=x86-windows and -Dtarget=x86-native (linux) respectively