On 05/05/2014, at 12:02 PM, john skaller wrote:
> Sorry i'm having a hard time at the moment bug finding.
Well, i have found a statement that triggers a bug:
if(debug_collections || report_collections)
fprintf(stderr,"[flx_gc:gc_profile_t] actually_collect\n");
If I comment out the test, it segfaults.
Now, this is of course utterly impossible crap.
Then I remembered that gdb was giving me ridiculously stupid errors too.
Then I found a bug, and I curse that moronic stupid idiotic C++ language.
here's the constructor for a gc profile:
gc_profile_t::gc_profile_t (
bool debug_driver_,
bool debug_allocations_,
bool debug_collections_,
bool report_collections_,
bool allow_collection_anywhere_,
unsigned long gc_freq_,
unsigned long min_mem_,
unsigned long max_mem_,
double free_factor_,
bool finalise_,
flx::gc::generic::collector_t *collector_
) :
...
and here the actual initialisation:
gcp = new flx::gc::generic::gc_profile_t(
c,
c->debug_allocations,
c->debug_collections,
c->report_collections,
c->allow_collection_anywhere,
c->gc_freq,
c->min_mem,
c->max_mem,
c->free_factor,
c->finalise,
collector
);
Exactly how the silent conversion from the pointer c to a bool
can crash the system I have no idea. However it should switch
driver debugging on universally and doesn't.
Fixing this doesn't fix the bug though :)
--
john skaller
[email protected]
http://felix-lang.org
------------------------------------------------------------------------------
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
• 3 signs your SCM is hindering your productivity
• Requirements for releasing software faster
• Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language