On Wednesday, 11 March 2015 at 10:13:12 UTC, Théo Bueno wrote:
On Wednesday, 11 March 2015 at 08:16:17 UTC, zhmt wrote:
Now , my question is:
How to get the position it crashes?
Or get the method call stack?

If you are developing under Linux, you can use GDB to debug your D apps, just like any C/C++ program. Make sure you are compiling in debug mode in order to have debug symbols in your binary.

Under Windows, there is Mago with VisualD.

Please refer to this page for more details on available debuggers : http://wiki.dlang.org/Debuggers

If you don't know how to use these debuggers, there is a lot of documentation available on the web :)


Thank you very much.
I got the call stack by gdb:

Program received signal SIGSEGV, Segmentation fault.
0x000000000077ca11 in vibe.core.drivers.libevent2_tcp.onSocketEvent (
    buf_event=0xcd43f8, status=17, arg=0xcd54e0)
at ../../../../root/.dub/packages/vibe-d-0.7.22/source/vibe/core/drivers/libevent2_tcp.d:651

Here is the code of libevent2_tcp.d:

if (ctx.writeOwner && ctx.writeOwner != ctx.readOwner && ctx.writeOwner.running) { logTrace("resuming corresponding task%s...", ex is null ? "" : " with exception"); if (ctx.writeOwner.fiber.state == Fiber.State.EXEC) ctx.exception = ex;
                                else ctx.core.resumeTask(ctx.writeOwner, ex);   
//LINE 651
                        }


I dont know what is happening, may I should get help from vibe.d forum.

Reply via email to