[ruby-core:120430] [Ruby master Feature#20987] Add dbg - minimal debugging helper
From:
"pawurb (Pawel Urbanek) via ruby-core" <ruby-core@...>
Date:
2024-12-27 11:50:02 UTC
List:
ruby-core #120430
SXNzdWUgIzIwOTg3IGhhcyBiZWVuIHVwZGF0ZWQgYnkgcGF3dXJiIChQYXdlbCBVcmJhbmVrKS4N Cg0KDQpIaS4gSXQncyBteSBmaXJzdCB0aW1lIGNvbnRyaWJ1dGluZyBoZXJlLCBzbyBJJ20gc29y cnkgaW4gYWR2YW5jZSBpZiBJJ3ZlIG1peGVkIHNvbWV0aGluZyB1cC4NCg0KSeKAmW0gYXV0aG9y IG9mIFtkYmctcmIgZ2VtXShodHRwczovL2dpdGh1Yi5jb20vcGF3dXJiL2RiZy1yYikuIGBkYmdg IG1ldGhvZCBpcyBpbnNwaXJlZCBieSBSdXN0IHdoZXJlIGl0J3MgW2J1aWx0LWluIGludG8gc3Rk LWxpYl0oaHR0cHM6Ly9kb2MucnVzdC1sYW5nLm9yZy9zdGQvbWFjcm8uZGJnLmh0bWwpLiBBRkFJ SyBpbiBSdWJ5IHRoZXJlJ3Mgbm8gc2ltcGxlIG1lY2hhbmlzbSB0byBwdXRzIGRlYnVnIHZhbHVl cyB0b2dldGhlciB3aXRoIGNhbGxlciBpbmZvIHdpdGhvdXQgdXNpbmcgZXh0ZXJuYWwgZGVwZW5k ZW5jaWVzLiBXaGF04oCZcyBtb3JlIGZydXN0cmF0aW5nIGlzIHRoYXQgd2hpbGUgYHAgbmlsYCBv dXRwdXRzIGBuaWxgIHRvIHRoZSBzdGQsIGBwdXRzIG5pbGAgcHJpbnRzIGEgYmxhbmsgbGluZSwg c29tZXRpbWVzIG1ha2luZyBkZWJ1Z2dpbmcgc2Vzc2lvbnMgY29uZnVzaW5nLg0KDQpJIHdvdWxk IGxpa2UgdG8gcHJvcG9zZSBhZGRpbmcgYSBtaW5pbWFsIGRiZyBoZWxwZXIgbWV0aG9kIHRvIHN0 ZGxpYjoNCg0KYGBgcnVieQ0KZGJnKCJIZWxsbyB3b3JsZCIsIFsxLCAyLCAzXSkNCiMgPT4gW2Rp ci9maWxlLnJiOjEyXSAiSGVsbG8gd29ybGQiDQojID0+IFtkaXIvZmlsZS5yYjoxMl0gWzEsIDIs IDNdDQpgYGANCg0KYGRiZ2Agd2lsbCBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRvZ2V0aGVyIHdp dGggaW5mb3JtYXRpdmUgZmlsZSBuYW1lIGFuZCBMT0MgaW5mby4gSSB0aGluayB0aGF0IHN1Y2gg YnVpbHQtaW4gZmVhdHVyZSB3b3VsZCBiZSB1c2VmdWwgZm9yIG1hbnkgUnVieSBkZXZzLg0KDQpN eSBnZW0gdXNlcyBleHRlcm5hbCBkZXBlbmRlbmNpZXMsIGJ1dCBJJ3ZlIGNhbWUgdXAgd2l0aCB0 aGlzIGJhcmVib25lcyBpbXBsZW1lbnRhdGlvbjoNCg0KYGBgcnVieQ0KZGVmIGRiZygqbXNncykN CiAgbG9jID0gY2FsbGVyX2xvY2F0aW9ucy5maXJzdA0KICBmaWxlID0gaWYgKHBhdGggPSBsb2Mu YWJzb2x1dGVfcGF0aCkNCiAgICAgICAgcGF0aC5zcGxpdCgiLyIpLmxhc3QoMikuam9pbigiLyIp DQogICAgICBlbHNlDQogICAgICAgIGxvYy5sYWJlbA0KICAgICAgZW5kDQogIGxpbmUgPSBsb2Mu bGluZW5vDQoNCiAgc3JjID0gIlsje2ZpbGV9OiN7bGluZX1dIg0KDQogIG1zZ3MuZWFjaCBkbyB8 bXNnfA0KICAgIHB1dHMgIiN7c3JjfSAje21zZy5pbnNwZWN0fSINCiAgZW5kDQogIG5pbA0KZW5k DQpgYGANCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVy ZSAjMjA5ODc6IEFkZCBkYmcgLSBtaW5pbWFsIGRlYnVnZ2luZyBoZWxwZXINCmh0dHBzOi8vYnVn cy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8yMDk4NyNjaGFuZ2UtMTExMjA5DQoNCiogQXV0aG9yOiBw YXd1cmIgKFBhd2VsIFVyYmFuZWspDQoqIFN0YXR1czogT3Blbg0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSGkuIEl0J3MgbXkgZmlyc3QgdGltZSBjb250cmlidXRp bmcgaGVyZSwgc28gSSdtIHNvcnJ5IGluIGFkdmFuY2UgaWYgSSd2ZSBtaXhlZCBzb21ldGhpbmcg dXAuDQoNCknigJltIGF1dGhvciBvZiBodHRwczovL2dpdGh1Yi5jb20vcGF3dXJiL2RiZy1yYiBn ZW0uIGBkYmdgIG1ldGhvZCBpcyBpbnNwaXJlZCBieSBSdXN0IHdoZXJlIGl0J3MgYnVpbHQtaW4g aW50byBzdGQtbGliIChodHRwczovL2RvYy5ydXN0LWxhbmcub3JnL3N0ZC9tYWNyby5kYmcuaHRt bCkuIEFGQUlLIGluIFJ1YnkgdGhlcmUncyBubyBzaW1wbGUgbWVjaGFuaXNtIHRvIHB1dHMgZGVi dWcgdmFsdWVzIHRvZ2V0aGVyIHdpdGggY2FsbGVyIGluZm8gd2l0aG91dCB1c2luZyBleHRlcm5h bCBkZXBlbmRlbmNpZXMuIFdoYXTigJlzIG1vcmUgZnJ1c3RyYXRpbmcgaXMgdGhhdCB3aGlsZSBg cCBuaWxgIG91dHB1dHMgYG5pbGAgdG8gdGhlIHN0ZCwgYHB1dHMgbmlsYCBwcmludHMgYSBibGFu ayBsaW5lLCBzb21ldGltZXMgbWFraW5nIGRlYnVnZ2luZyBzZXNzaW9ucyBjb25mdXNpbmcuDQoN Ckkgd291bGQgbGlrZSB0byBwcm9wb3NlIGFkZGluZyBhIG1pbmltYWwgYGRiZ2AgaGVscGVyIG1l dGhvZCB0byBzdGRsaWI6DQoNCmBgYA0KZGJnKCJIZWxsbyB3b3JsZCIsIFsxLCAyLCAzXSkNCiMg PT4gW2Rpci9maWxlLnJiOjEyXSAiSGVsbG8gd29ybGQiDQojID0+IFtkaXIvZmlsZS5yYjoxMl0g WzEsIDIsIDNdDQpgYGANCg0KYGRiZ2Agd2lsbCBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRvZ2V0 aGVyIHdpdGggaW5mb3JtYXRpdmUgZmlsZSBuYW1lIGFuZCBMT0MgaW5mby4gSSB0aGluayB0aGF0 IHN1Y2ggYnVpbHQtaW4gZmVhdHVyZSB3b3VsZCBiZSB1c2VmdWwgZm9yIG1hbnkgUnVieSBkZXZz Lg0KDQpNeSBnZW0gdXNlcyBleHRlcm5hbCBkZXBlbmRlbmNpZXMsIGJ1dCBJJ3ZlIGNhbWUgdXAg d2l0aCB0aGlzIGJhcmVib25lcyBpbXBsZW1lbnRhdGlvbjoNCg0KYGBgDQpkZWYgZGJnKCptc2dz KQ0KICBsb2MgPSBjYWxsZXJfbG9jYXRpb25zLmZpcnN0LnRvX3MNCiAgbWF0Y2hpbmdfbG9jID0g bG9jLm1hdGNoKC8uKyhyYilcOlxkK1w6KGluKVxzLykNCiAgc3JjID0gaWYgbWF0Y2hpbmdfbG9j Lm5pbD8NCiAgICAgIGxvYw0KICAgIGVsc2UNCiAgICAgIG1hdGNoaW5nX2xvY1swXVswLi4tNV0N CiAgICBlbmQNCiAgZmlsZSwgbGluZSA9IHNyYy5zcGxpdCgiOiIpDQogIGZpbGUgPSBmaWxlLnNw bGl0KCIvIikubGFzdCgyKS5qb2luKCIvIikNCiAgc3JjID0gIlsje2ZpbGV9OiN7bGluZX1dIg0K DQogIG1zZ3MuZWFjaCBkbyB8bXNnfA0KICAgIHB1dHMgIiN7c3JjfSAje21zZy5pbnNwZWN0fSIN CiAgZW5kDQogIG5pbA0KZW5kDQpgYGANCg0KDQotLS1GaWxlcy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQpTY3JlZW5zaG90IDIwMjQtMTItMjcgYXQgMDAuMDAuMjMucG5nICg4MS41 IEtCKQ0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQogX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlz dCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBl bWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8g LS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5y dWJ5LWxhbmcub3JnLw==