On Friday, 25 March 2016 at 08:21:29 UTC, Vladimir Panteleev
wrote:
Perhaps have a look at what etc.linux.memoryerror does.
Oh, there it is! In druntime! Oh look, inline assembler! No
architectures outside of X86/X86_64. Manually editing the bytes
of your stack context!
I think I'll just go cry in the shower now.
* DWARF debugging symbols that don't scramble the only program
on earth that actually uses them.
What compiler flags did you use?
make -f posix install
...
I learned about BUILD=debug after that, but haven't tried it yet.
Takes a _long_ time to compile phobos.
Having an up-to-date GDB might help.
And an up-to-date GCC, and my own custom version of glibc while
I'm at it, and both GDC and DMD, and Phobos, and DRuntime.
This sort of works:
try
throw new Exception(null);
catch (Exception e)
context = e.toString().splitLines()[1..$];
Huh, neat... I'll have to remember that.
* catching null pointer errors earlier, instead of waiting
until you 1) call the class function and 2) the function
accesses a member.
Doesn't this already happen if you compile without -release?
Apparantly not, because I've never compiled without -debug, and I
infrequently get "null this" errors after having called the
function...
Calling a class method will invoke the class invariant hidden
virtual method,
...in a struct, not a class.
Structs have this: @disable this(this);
I use that very liberally.