{"id":16087498,"url":"https://github.com/linqlover/debugloginspector","last_synced_at":"2026-01-19T15:11:09.145Z","repository":{"id":115793305,"uuid":"539683692","full_name":"LinqLover/DebugLogInspector","owner":"LinqLover","description":"Parse Squeak DebugLogs and inspect them in a debugger","archived":false,"fork":false,"pushed_at":"2022-10-07T12:22:24.000Z","size":115,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T15:27:13.537Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LinqLover.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-21T21:02:06.000Z","updated_at":"2022-09-21T21:05:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"7605e521-8f6e-4c82-a112-07324273336b","html_url":"https://github.com/LinqLover/DebugLogInspector","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LinqLover/DebugLogInspector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinqLover%2FDebugLogInspector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinqLover%2FDebugLogInspector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinqLover%2FDebugLogInspector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinqLover%2FDebugLogInspector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LinqLover","download_url":"https://codeload.github.com/LinqLover/DebugLogInspector/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinqLover%2FDebugLogInspector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28572998,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T14:39:55.009Z","status":"ssl_error","status_checked_at":"2026-01-19T14:39:01.217Z","response_time":67,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-09T13:29:54.265Z","updated_at":"2026-01-19T15:11:09.128Z","avatar_url":"https://github.com/LinqLover.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DebugLogInspector\n\nParse Squeak DebugLogs and inspect them in a debugger.\n\nVery young protoype. Not matured, thought-through, or tested thoroughly. Very likely not covers all edge cases of DebugLogs.\n\n## What is it?\n\nWhenever Squeak opens a debugger, a file named `SqueakDebug.log` is created. You can also manually create a DebugLog by right-clicking the context stack pane and selecting \"copy bug report to clipboard\". The result is a text file which contains many important information to reproduce a bug, but still is hard to grasp for programmers that are used to the graphical representation of the Squeak Debugger.\n\n\u003csmall\u003e\nExample DebugLog:\n\n```\n21 September 2022 11:10:41.197736 pm\n\nVM: Win32 - Smalltalk\nImage: Squeak6.1alpha [latest update: #22218]\n\nSecurityManager state:\nRestricted: false\nFileAccess: true\nSocketAccess: true\nWorking Dir C:\\Users\\Christoph\\Documents\\squeak\\TraceDebugger\nTrusted Dir C:\\Users\\Christoph\\Documents\\squeak\\TraceDebugger\\Christoph\nUntrusted Dir C:\\Users\\Christoph\\OneDrive\\Dokumente\\My Squeak\n\nEventSensor\u003e\u003eprocessEvent:\n\tpc: 440\n\tReceiver: an EventSensor\n\tArguments and temporary variables: \n\t\tevt: \t#(2 138885171 46 0 8 46 0 1)\n\t\ttype: \t2\n\t\tbuttons: \tnil\n\t\twindow: \t1\n\t\tunicode: \tnil\n\t\tascii: \tnil\n\tReceiver's instance variables: \n\t\tmouseButtons: \t0\n\t\tmousePosition: \t1044@294\n\t\tmouseWheelDelta: \t0@0\n\t\tkeyboardBuffer: \ta SharedQueue(0)\n\t\tinterruptKey: \t2094\n\t\tinterruptSemaphore: \ta Semaphore(a Process(44889) in EventSensor\u003e\u003euserInterruptWatcher...etc...\n\t\teventQueue: \ta SharedQueue(1)\n\t\tinputSemaphore: \ta Semaphore()\n\t\tlastEventPoll: \t3841247441194\n\t\thasInputSemaphore: \ttrue\n\t\tlastEventTime: \t138889875\n\nEventSensor\u003e\u003efetchMoreEvents\n\tpc: 146\n\tReceiver: an EventSensor\n\tArguments and temporary variables: \n\t\teventBuffer: \t#(2 138885171 46 0 8 46 0 1)\n\t\ttype: \t2\n\tReceiver's instance variables: \n\t\tmouseButtons: \t0\n\t\tmousePosition: \t1044@294\n\t\tmouseWheelDelta: \t0@0\n\t\tkeyboardBuffer: \ta SharedQueue(0)\n\t\tinterruptKey: \t2094\n\t\tinterruptSemaphore: \ta Semaphore(a Process(44889) in EventSensor\u003e\u003euserInterruptWatcher...etc...\n\t\teventQueue: \ta SharedQueue(1)\n\t\tinputSemaphore: \ta Semaphore()\n\t\tlastEventPoll: \t3841247441194\n\t\thasInputSemaphore: \ttrue\n\t\tlastEventTime: \t138889875\n\n...etc...\n```\n\u003c/small\u003e\n\n(... truncated for clarity, you get the ieda. You can find some complete examples [here](./packages/DebugLogInspector.package/DebugLogInspectorTest.class/instance/fixtureHalt.st).)\n\nThe idea of this small tool is to parse a DebugLog and display it in a normal debugger:\n\n![DebugLogInspector for a User Interrupt](./DebugLogInspector.png)\n\nYou can:\n\n- Interact with the context stack pane\n- Inspect all objects and stack variables that were contained in the debug log\n- Use the \u003ckbd\u003eWhere\u003c/kbd\u003e button to reveal the latest message send (requires a version of `Context\u003e\u003e#printDetails:` that includes the pc)\n- Browse senders/implementors, variable references/assignments, class definition/inheritance/hierarchy like in a normal debugger\n\nYou cannot:\n\n- Continue the program through the stepping buttons\n- Inspect the details of displayed variables (they are just flat placeholders)\n\n## Installation\n\n```smalltalk\nMetacello new\n\tbaseline: 'DebugLogInspector';\n\trepository: 'github://LinqLover/DebugLogInspector';\n\tget;\n\tload.\n```\n\n## Usage\n\nThere are multiple entrypoints:\n\n- Copy the bug report into clipboard, then do:\n\n  ```smalltalk\n  DebugLogParser debugFromClipboard.\n  ```\n\n- Drag a `SqueakDebug.log` file into your image, or open it in a File List, and select \"inspect debug log\".\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinqlover%2Fdebugloginspector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinqlover%2Fdebugloginspector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinqlover%2Fdebugloginspector/lists"}