On Tue, Jul 12, 2016 at 4:27 PM Stefan Monnier wrote: > Clearly, the problem is that string-match-p uses > "(let ((inhibit-changing-match-data t))", so the debugger is run with > inhibit-changing-match-data bound to t and that breaks lots of > Elisp code. > > That's a general problem with the use dynamic binding to pass extra > parameters: you end up passing them not just to that one function but > also to all other functions called from that one. > Thanks Stefan. So what is the way forward? Fixing just string-match-p and string-match does not seem to the complete solution, because I have seen just let-bound dynamic vars at many places. As I posted in the emacs-devel thread ( https://lists.gnu.org/archive/html/emacs-devel/2016-07/msg00544.html ), while this string-match-p issue causes a confusing seemingly unrelated error, some other packages cause emacs to freeze up (check the drag-stuff example in the above link). When I get a change I will add a minimum working example for the drag-stuff package causing emacs freeze too. Certainly there was a lower level change after emacs 24.5 that changed the behavior of how the run-hooks behave or how the advices are executed in general or when called within a debugger? -- Kaushal Modi