alexmojaki / birdseye

Graphical Python debugger which lets you easily view the values of all evaluated expressions
https://birdseye.readthedocs.io
MIT License
1.65k stars 72 forks source link

small string containing html script breaks debugger output #52

Closed AndyQ closed 6 years ago

AndyQ commented 6 years ago

I was doing some testing of a flask function and had a couple of issues - narrowed it down to running the following simple script causes the debugger output not work correctly (tested in Chrome and Safari)

from birdseye import eye

@eye
def test():
    rc = """<script src="/vendor/jquery-3.2.0.min.js"></script>"""
    return rc

test()

The webpage shows some JSON at the top (looks like - '",10,{"len":51}],"7":["",-2,{}]},"loop_iteratio.......)

Page Console shows: [Error] SyntaxError: Unexpected EOF (anonymous function) (1cb61614897a4258a8cdf3fa3cce4a2e:14) [Warning] jQuery.Deferred exception: Can't find variable: call_data (2) (jquery-3.2.1.js, line 3860) (anonymous function) — call.js:20 mightThrow — jquery-3.2.1.js:3583 (anonymous function) — jquery-3.2.1.js:3651 undefined [Error] Failed to load resource: the server responded with a status of 404 (NOT FOUND) (bootstrap.min.css.map, line 0) [Error] ReferenceError: Can't find variable: call_data (anonymous function) (jquery-3.2.1.js:3869)

alexmojaki commented 6 years ago

Thanks for the great bug report with a nice minimal example! This should be fixed now, upgrade and give it a go.

Fixed in https://github.com/alexmojaki/birdseye/commit/3ff6cd7d86b83e8c1ce4fabf42dfcbcb004c5f3d