http://bugs.winehq.org/show_bug.cgi?id=18921
Summary: O(n) hash_table_add causes winedbg to take 20 minutes to dump stack when chromium crashes Product: Wine Version: 1.1.23 Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: dbghelp AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com CC: eric.pouech@orange.fr
In bug 15206, I mentioned that windbg was too slow to be usable. I ran oprofile while winedbg was churning, and the time appears to all be spent on one line of code in dlls/dbghelp/storage.c:
void hash_table_add(struct hash_table* ht, struct hash_table_elt* elt) { ... 569217 89.8978 : for (p = &ht->buckets[hash]; *p; p = &((*p)->next));
Looks like we need to modify struct hash_table and some of its operators to allow a more efficient append operation there.
Fixing this bug will be one more step towards being friendly to developers who use Visual Studio and expect our tools to be able to handle .pdb files well.