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
skal...@users.sourceforge.net
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
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to