Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Through filters #76

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Trace Debugger

[![Tests](https://github.com/hpi-swa-lab/squeak-tracedebugger/actions/workflows/tests.yml/badge.svg)](https://github.com/hpi-swa-lab/squeak-tracedebugger/actions/workflows/tests.yml)
[![Coverage Status](https://coveralls.io/repos/github/hpi-swa-lab/squeak-tracedebugger/badge.svg?branch=main)](https://coveralls.io/github/hpi-swa-lab/squeak-tracedebugger)
[![Benchmarks](https://img.shields.io/badge/-benchmarks-blue)](https://hpi-swa-lab.github.io/squeak-tracedebugger/dev/bench/)
[![Build](https://github.com/hpi-swa-lab/squeak-tracedebugger/actions/workflows/build.yml/badge.svg)](https://github.com/hpi-swa-lab/squeak-tracedebugger/actions/workflows/build.yml)
[![Tests](https://github.com/LinqLover/squeak-tracedebugger/actions/workflows/tests.yml/badge.svg)](https://github.com/LinqLover/squeak-tracedebugger/actions/workflows/tests.yml)
[![Coverage Status](https://coveralls.io/repos/github/LinqLover/squeak-tracedebugger/badge.svg?branch=main)](https://coveralls.io/github/LinqLover/squeak-tracedebugger)
[![Benchmarks](https://img.shields.io/badge/-benchmarks-blue)](https://LinqLover.github.io/squeak-tracedebugger/dev/bench/)
[![Build](https://github.com/LinqLover/squeak-tracedebugger/actions/workflows/build.yml/badge.svg)](https://github.com/LinqLover/squeak-tracedebugger/actions/workflows/build.yml)

A lightweight and efficient back-in-time debugger for [Squeak](http://squeak.org/) to trace and retrace past method invocations and state changes.
Powered by [SimulationStudio](https://github.com/LinqLover/SimulationStudio).
Expand All @@ -18,25 +18,25 @@ Key features:
- **Snapshot inspectors/explorers** for objects during debugging

<p align="center">
<img src="https://github.com/hpi-swa-lab/squeak-tracedebugger/blob/gh-pages/screenshots/TraceDebugger.png?raw=true"></img>
<img src="https://github.com/LinqLover/squeak-tracedebugger/blob/gh-pages/screenshots/TraceDebugger.png?raw=true"></img>
</p>

<small><b>Fun fact:</b> All screenshots are <a href="./.github/workflows/build.yml">CI-generated</a>. Find all other screenshots <a href="https://github.com/hpi-swa-lab/squeak-tracedebugger/tree/gh-pages/screenshots">here</a>.</small>
<small><b>Fun fact:</b> All screenshots are <a href="./.github/workflows/build.yml">CI-generated</a>. Find all other screenshots <a href="https://github.com/LinqLover/squeak-tracedebugger/tree/gh-pages/screenshots">here</a>.</small>

Read the [exposé](./docs/exposé.md) and the [product visions](./docs/product-visions.md) for more details about the aims and USPs of this project.
In the [`studies`](./studies/) folders, you can also find the documentation of all experiments that have been conducted so far.
There are many open interesting [issues](https://github.com/hpi-swa-lab/squeak-tracedebugger/issues) for future work.
There are many open interesting [issues](https://github.com/LinqLover/squeak-tracedebugger/issues) for future work.

## Installation

We offer a pre-configured all-in-one image. Please go to the [releases section](https://github.com/hpi-swa-lab/squeak-tracedebugger/releases), download and extract the latest `TraceDebugger-*.zip` archive, and execute it.
We offer a pre-configured all-in-one image. Please go to the [releases section](https://github.com/LinqLover/squeak-tracedebugger/releases), download and extract the latest `TraceDebugger-*.zip` archive, and execute it.

To install the TraceDebugger manually, evaluate the following in a workspace:

```smalltalk
Metacello new
baseline: 'TraceDebugger';
repository: 'github://hpi-swa-lab/squeak-tracedebugger';
repository: 'github://LinqLover/squeak-tracedebugger';
get;
load.
```
Expand All @@ -49,7 +49,7 @@ To install updates, evaluate the following:
TraceDebugger selfUpdate.
```

(You can also do this via the [window menu ![window menu](./assets/windowMenuButton.png)](https://github.com/hpi-swa-lab/squeak-tracedebugger/blob/gh-pages/screenshots/windowMenu.png) of every trace debugger.)
(You can also do this via the [window menu ![window menu](./assets/windowMenuButton.png)](https://github.com/LinqLover/squeak-tracedebugger/blob/gh-pages/screenshots/windowMenu.png) of every trace debugger.)

## Usage

Expand All @@ -59,7 +59,7 @@ For a quick start, open a normal expression in a debugger and press the new <kbd
TraceDebuggerHelp openHelpBrowser.
```

(Again, you can also open this help via the [window menu ![window menu](./assets/windowMenuButton.png)](https://github.com/hpi-swa-lab/squeak-tracedebugger/blob/gh-pages/screenshots/windowMenu.png) of every trace debugger.)
(Again, you can also open this help via the [window menu ![window menu](./assets/windowMenuButton.png)](https://github.com/LinqLover/squeak-tracedebugger/blob/gh-pages/screenshots/windowMenu.png) of every trace debugger.)

## Architecture

Expand Down
2 changes: 1 addition & 1 deletion assets/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
You can find all CI-generated screenshots [here](https://github.com/hpi-swa-lab/squeak-tracedebugger/tree/gh-pages/screenshots).
You can find all CI-generated screenshots [here](https://github.com/LinqLover/squeak-tracedebugger/tree/gh-pages/screenshots).

![banner](./banner.svg)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*TraceDebugger-Core-testing
tdbIsOrHasSender: aContext

^ (self tdbIdentical: aContext) or: [self hasSender: aContext tdbproxyYourself]
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"tdbFullStack" : "ct 2/8/2022 19:26",
"tdbHandlerContexts" : "ct 3/19/2022 20:36",
"tdbHasHome:" : "ct 11/30/2021 22:52",
"tdbIsOrHasSender:" : "ct 3/23/2022 22:20",
"tdbIsSignalContext" : "ct 3/21/2022 16:34",
"tdbIsUnhandledSignalContext" : "ct 3/21/2022 16:34",
"tdbLivingHomeSuchThat:" : "ct 3/13/2022 01:13",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
private
streamChildrenForFilter: filter aboveHome: startContext on: aStream

self children do: [:child |
(((child contextAtTime: child minTimeIndex) home in: [:childHome | startContext tdbIsOrHasSender: childHome])
and: [filter value: child originalContext])
ifTrue: [aStream nextPut: child]
ifFalse:
[child
streamChildrenForFilter: filter
aboveHome: startContext
on: aStream]].
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,8 @@ streamChildrenForFilter: filter on: aStream
self children do: [:child |
(filter value: child originalContext)
ifTrue: [aStream nextPut: child]
ifFalse: [child streamChildrenForFilter: filter on: aStream]].
ifFalse:
[child
streamChildrenForFilter: filter
aboveHome: self originalContext home
on: aStream]].
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@
"printOn:" : "ct 12/1/2021 23:08",
"spaceUsed" : "ct 3/15/2022 22:01",
"streamAllContextsOn:satisfying:" : "ct 3/14/2022 19:04",
"streamChildrenForFilter:on:" : "ct 2/19/2022 16:48",
"streamChildrenForFilter:aboveHome:on:" : "ct 3/23/2022 22:28",
"streamChildrenForFilter:on:" : "ct 3/23/2022 22:26",
"traceAtTime:" : "ct 11/30/2021 20:26",
"traceAtTime:ifAbsent:" : "ct 1/26/2022 14:34",
"tracingSimulatorClass" : "ct 1/7/2022 19:58",
Expand Down
2 changes: 1 addition & 1 deletion studies/1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Conducted in 2022-02 with 2 participants.

### Preparation

- hand out image with pre-installed TraceDebugger and source code modifications ([`bbba076`](https://github.com/hpi-swa-lab/squeak-tracedebugger/releases/tag/study-1))
- hand out image with pre-installed TraceDebugger and source code modifications ([`bbba076`](https://github.com/LinqLover/squeak-tracedebugger/releases/tag/study-1))
- allow participants to go through Preference Wizard

### Short intro
Expand Down