{ "video_id": "rcJwvx2CTZY", "segments": [ { "start": 0.4, "duration": 0.0, "text": "For<00:00:00.520> everybody<00:00:00.960> who<00:00:01.120> is<00:00:01.240> joining,<00:00:02.000> we<00:00:02.200> are" }, { "start": 2.31, "duration": 0.0, "text": "For everybody who is joining, we are" }, { "start": 2.32, "duration": 0.0, "text": "For everybody who is joining, we are gathered<00:00:02.760> here<00:00:03.000> today<00:00:03.760> for<00:00:04.040> Ryan<00:00:04.800> to<00:00:04.960> show<00:00:05.200> us" }, { "start": 5.71, "duration": 0.0, "text": "gathered here today for Ryan to show us" }, { "start": 5.72, "duration": 0.0, "text": "gathered here today for Ryan to show us radare2<00:00:06.120> debugger<00:00:06.440> code<00:00:06.720> base." }, { "start": 7.99, "duration": 0.0, "text": "radare2 debugger code base." }, { "start": 8.0, "duration": 0.0, "text": "radare2 debugger code base. Hello<00:00:08.200> Ryan,<00:00:08.760> how<00:00:08.880> are<00:00:08.960> you<00:00:09.000> doing?" }, { "start": 9.51, "duration": 0.0, "text": "Hello Ryan, how are you doing?" }, { "start": 9.52, "duration": 0.0, "text": "Hello Ryan, how are you doing? >> Hello.<00:00:10.400> Good,<00:00:10.640> how<00:00:10.760> are<00:00:10.840> you?" }, { "start": 11.67, "duration": 0.0, "text": ">> Hello. Good, how are you?" }, { "start": 11.68, "duration": 0.0, "text": ">> Hello. Good, how are you? >> Great." }, { "start": 12.87, "duration": 0.0, "text": ">> Great." }, { "start": 12.88, "duration": 0.0, "text": ">> Great. And<00:00:13.720> after<00:00:13.960> this<00:00:14.160> a<00:00:14.200> little<00:00:14.400> bit<00:00:14.600> awkward" }, { "start": 14.99, "duration": 0.0, "text": "And after this a little bit awkward" }, { "start": 15.0, "duration": 0.0, "text": "And after this a little bit awkward introduction<00:00:15.920> interchange," }, { "start": 17.19, "duration": 0.0, "text": "introduction interchange," }, { "start": 17.2, "duration": 0.0, "text": "introduction interchange, uh<00:00:17.600> Ryan<00:00:18.600> will<00:00:18.840> first<00:00:19.280> start<00:00:19.760> with<00:00:19.960> showing<00:00:20.280> us" }, { "start": 20.55, "duration": 0.0, "text": "uh Ryan will first start with showing us" }, { "start": 20.56, "duration": 0.0, "text": "uh Ryan will first start with showing us how<00:00:20.880> radare2<00:00:21.200> debugger<00:00:21.520> works<00:00:22.000> in<00:00:22.200> general<00:00:22.960> in" }, { "start": 23.19, "duration": 0.0, "text": "how radare2 debugger works in general in" }, { "start": 23.2, "duration": 0.0, "text": "how radare2 debugger works in general in terms<00:00:23.440> of<00:00:23.640> what's<00:00:23.800> the<00:00:24.160> product<00:00:25.240> how<00:00:25.480> the" }, { "start": 25.67, "duration": 0.0, "text": "terms of what's the product how the" }, { "start": 25.68, "duration": 0.0, "text": "terms of what's the product how the users<00:00:26.280> could<00:00:26.640> use<00:00:27.000> radare2<00:00:27.320> debugger<00:00:28.040> and" }, { "start": 28.15, "duration": 0.0, "text": "users could use radare2 debugger and" }, { "start": 28.16, "duration": 0.0, "text": "users could use radare2 debugger and then<00:00:28.320> we're<00:00:28.400> going<00:00:28.520> to<00:00:28.600> dive<00:00:28.840> in<00:00:29.000> into<00:00:29.400> source" }, { "start": 29.71, "duration": 0.0, "text": "then we're going to dive in into source" }, { "start": 29.72, "duration": 0.0, "text": "then we're going to dive in into source code." }, { "start": 30.19, "duration": 0.0, "text": "code." }, { "start": 30.2, "duration": 0.0, "text": "code. >> So,<00:00:30.960> unfortunately<00:00:31.440> I<00:00:31.480> can't<00:00:31.720> show<00:00:32.240> what<00:00:32.400> it's" }, { "start": 32.55, "duration": 0.0, "text": ">> So, unfortunately I can't show what it's" }, { "start": 32.56, "duration": 0.0, "text": ">> So, unfortunately I can't show what it's like<00:00:32.759> to<00:00:32.960> get<00:00:33.360> the<00:00:33.440> debugger" }, { "start": 35.11, "duration": 0.0, "text": "like to get the debugger" }, { "start": 35.12, "duration": 0.0, "text": "like to get the debugger um<00:00:35.400> because<00:00:36.080> I<00:00:36.280> can<00:00:36.440> only<00:00:36.680> share<00:00:37.040> share<00:00:37.320> the" }, { "start": 37.39, "duration": 0.0, "text": "um because I can only share share the" }, { "start": 37.4, "duration": 0.0, "text": "um because I can only share share the debugger<00:00:37.720> itself,<00:00:38.080> but<00:00:38.200> I<00:00:38.240> mean<00:00:38.400> it's<00:00:38.520> very" }, { "start": 38.75, "duration": 0.0, "text": "debugger itself, but I mean it's very" }, { "start": 38.76, "duration": 0.0, "text": "debugger itself, but I mean it's very straightforward.<00:00:39.320> Like<00:00:39.480> you<00:00:39.600> go<00:00:39.800> to<00:00:39.960> the" }, { "start": 40.15, "duration": 0.0, "text": "straightforward. Like you go to the" }, { "start": 40.16, "duration": 0.0, "text": "straightforward. Like you go to the debugger<00:00:41.160> GitHub<00:00:41.480> page,<00:00:42.120> you<00:00:42.240> click<00:00:42.480> on<00:00:42.600> the" }, { "start": 42.67, "duration": 0.0, "text": "debugger GitHub page, you click on the" }, { "start": 42.68, "duration": 0.0, "text": "debugger GitHub page, you click on the releases<00:00:43.320> section,<00:00:44.080> and<00:00:44.200> then<00:00:44.280> you<00:00:44.480> get" }, { "start": 44.87, "duration": 0.0, "text": "releases section, and then you get" }, { "start": 44.88, "duration": 0.0, "text": "releases section, and then you get radare2<00:00:45.400> .exe,<00:00:46.200> and<00:00:46.280> that's<00:00:46.480> it.<00:00:46.640> And<00:00:46.720> then" }, { "start": 46.79, "duration": 0.0, "text": "radare2 .exe, and that's it. And then" }, { "start": 46.8, "duration": 0.0, "text": "radare2 .exe, and that's it. And then you<00:00:46.920> run<00:00:47.080> that.<00:00:47.520> And<00:00:47.600> then<00:00:47.720> this<00:00:47.880> is<00:00:48.000> what<00:00:48.120> will" }, { "start": 48.19, "duration": 0.0, "text": "you run that. And then this is what will" }, { "start": 48.2, "duration": 0.0, "text": "you run that. And then this is what will pop<00:00:48.400> up<00:00:48.760> or<00:00:48.840> something<00:00:49.120> like<00:00:49.280> this." }, { "start": 50.91, "duration": 0.0, "text": "pop up or something like this." }, { "start": 50.92, "duration": 0.0, "text": "pop up or something like this. Um" }, { "start": 52.87, "duration": 0.0, "text": "Um" }, { "start": 52.88, "duration": 0.0, "text": "Um so<00:00:53.055> [clears throat]" }, { "start": 54.15, "duration": 0.0, "text": "so [clears throat]" }, { "start": 54.16, "duration": 0.0, "text": "so [clears throat] anyways,<00:00:54.600> if<00:00:54.720> you<00:00:54.880> open<00:00:55.120> the<00:00:55.200> program<00:00:55.560> like" }, { "start": 55.71, "duration": 0.0, "text": "anyways, if you open the program like" }, { "start": 55.72, "duration": 0.0, "text": "anyways, if you open the program like this,<00:00:55.960> so<00:00:56.120> there's<00:00:56.400> there's<00:00:56.640> one<00:00:56.840> thing<00:00:57.000> you" }, { "start": 57.11, "duration": 0.0, "text": "this, so there's there's one thing you" }, { "start": 57.12, "duration": 0.0, "text": "this, so there's there's one thing you can<00:00:57.240> do<00:00:57.640> and<00:00:57.760> because<00:00:58.040> I<00:00:58.120> can't<00:00:58.760> because<00:00:59.000> I" }, { "start": 59.03, "duration": 0.0, "text": "can do and because I can't because I" }, { "start": 59.04, "duration": 0.0, "text": "can do and because I can't because I can't<00:00:59.360> share<00:00:59.720> my<00:01:00.560> my<00:01:00.720> screen,<00:01:01.000> I<00:01:01.040> can't<00:01:01.320> show" }, { "start": 61.55, "duration": 0.0, "text": "can't share my my screen, I can't show" }, { "start": 61.56, "duration": 0.0, "text": "can't share my my screen, I can't show what<00:01:01.680> the<00:01:01.760> command<00:01:02.120> line<00:01:02.760> usage<00:01:03.160> looks<00:01:03.320> like." }, { "start": 64.15, "duration": 0.0, "text": "what the command line usage looks like." }, { "start": 64.16, "duration": 0.0, "text": "what the command line usage looks like. But<00:01:04.280> basically<00:01:04.680> there's<00:01:04.879> one<00:01:05.080> thing<00:01:05.239> you<00:01:05.320> can" }, { "start": 65.47, "duration": 0.0, "text": "But basically there's one thing you can" }, { "start": 65.48, "duration": 0.0, "text": "But basically there's one thing you can do,<00:01:06.160> let<00:01:06.280> me<00:01:06.320> just<00:01:06.480> open<00:01:06.640> a<00:01:06.680> watch<00:01:06.960> window<00:01:07.200> and" }, { "start": 67.27, "duration": 0.0, "text": "do, let me just open a watch window and" }, { "start": 67.28, "duration": 0.0, "text": "do, let me just open a watch window and then<00:01:07.400> I<00:01:07.440> can<00:01:07.960> uh" }, { "start": 68.51, "duration": 0.0, "text": "then I can uh" }, { "start": 68.52, "duration": 0.0, "text": "then I can uh put<00:01:08.680> a<00:01:08.720> little<00:01:08.880> string<00:01:09.120> in<00:01:09.200> here.<00:01:09.400> So,<00:01:10.000> um" }, { "start": 70.63, "duration": 0.0, "text": "put a little string in here. So, um" }, { "start": 70.64, "duration": 0.0, "text": "put a little string in here. So, um actually<00:01:10.880> let<00:01:11.000> me<00:01:11.160> unload<00:01:11.600> a<00:01:11.640> bunch<00:01:11.840> of<00:01:11.920> debug" }, { "start": 72.23, "duration": 0.0, "text": "actually let me unload a bunch of debug" }, { "start": 72.24, "duration": 0.0, "text": "actually let me unload a bunch of debug info<00:01:12.920> that<00:01:13.000> I<00:01:13.040> don't<00:01:13.240> need<00:01:13.360> loaded<00:01:13.640> right<00:01:13.800> now." }, { "start": 73.95, "duration": 0.0, "text": "info that I don't need loaded right now." }, { "start": 73.96, "duration": 0.0, "text": "info that I don't need loaded right now. So," }, { "start": 74.66, "duration": 0.0, "text": "So," }, { "start": 74.67, "duration": 0.0, "text": "So, >> [clears throat]" }, { "start": 75.71, "duration": 0.0, "text": ">> [clears throat]" }, { "start": 75.72, "duration": 0.0, "text": ">> [clears throat] >> on<00:01:15.960> command<00:01:16.240> line<00:01:16.440> what<00:01:16.560> you<00:01:16.640> can<00:01:16.720> do<00:01:16.920> is<00:01:17.000> like" }, { "start": 77.19, "duration": 0.0, "text": ">> on command line what you can do is like" }, { "start": 77.2, "duration": 0.0, "text": ">> on command line what you can do is like you<00:01:17.440> you<00:01:17.520> can<00:01:17.640> run<00:01:18.480> radare2<00:01:19.160> and<00:01:19.280> then<00:01:19.920> um<00:01:20.360> so" }, { "start": 80.51, "duration": 0.0, "text": "you you can run radare2 and then um so" }, { "start": 80.52, "duration": 0.0, "text": "you you can run radare2 and then um so if<00:01:20.680> you're<00:01:20.800> running<00:01:21.120> a<00:01:21.200> program<00:01:21.760> that<00:01:21.920> you're" }, { "start": 82.87, "duration": 0.0, "text": "if you're running a program that you're" }, { "start": 82.88, "duration": 0.0, "text": "if you're running a program that you're that<00:01:23.000> you're<00:01:23.360> actively<00:01:23.720> developing,<00:01:24.200> you" }, { "start": 84.31, "duration": 0.0, "text": "that you're actively developing, you" }, { "start": 84.32, "duration": 0.0, "text": "that you're actively developing, you might<00:01:24.520> run<00:01:24.720> something<00:01:25.000> like<00:01:25.200> foo.exe." }, { "start": 87.31, "duration": 0.0, "text": "might run something like foo.exe." }, { "start": 87.32, "duration": 0.0, "text": "might run something like foo.exe. Um<00:01:28.040> and<00:01:28.160> then<00:01:28.280> you<00:01:28.360> might<00:01:28.600> say<00:01:28.800> like<00:01:29.080> {dash}<00:01:29.720> a" }, { "start": 89.99, "duration": 0.0, "text": "Um and then you might say like {dash} a" }, { "start": 90.0, "duration": 0.0, "text": "Um and then you might say like {dash} a {dash}<00:01:30.320> b<00:01:31.200> uh" }, { "start": 91.75, "duration": 0.0, "text": "{dash} b uh" }, { "start": 91.76, "duration": 0.0, "text": "{dash} b uh {dash}<00:01:32.600> some<00:01:33.000> other<00:01:33.360> option<00:01:34.480> equals" }, { "start": 94.91, "duration": 0.0, "text": "{dash} some other option equals" }, { "start": 94.92, "duration": 0.0, "text": "{dash} some other option equals whatever,<00:01:35.560> like<00:01:35.680> something<00:01:35.880> like<00:01:36.000> this." }, { "start": 96.15, "duration": 0.0, "text": "whatever, like something like this." }, { "start": 96.16, "duration": 0.0, "text": "whatever, like something like this. Whatever<00:01:36.360> your<00:01:36.440> command<00:01:36.720> line<00:01:36.880> arguments<00:01:37.240> are" }, { "start": 97.35, "duration": 0.0, "text": "Whatever your command line arguments are" }, { "start": 97.36, "duration": 0.0, "text": "Whatever your command line arguments are if<00:01:37.480> you<00:01:37.600> have<00:01:37.760> them." }, { "start": 99.15, "duration": 0.0, "text": "if you have them." }, { "start": 99.16, "duration": 0.0, "text": "if you have them. To<00:01:39.360> run<00:01:39.520> this<00:01:39.920> within<00:01:40.200> the<00:01:40.280> context<00:01:40.640> of<00:01:40.720> the" }, { "start": 100.79, "duration": 0.0, "text": "To run this within the context of the" }, { "start": 100.8, "duration": 0.0, "text": "To run this within the context of the debugger,<00:01:41.200> all<00:01:41.360> you<00:01:41.440> have<00:01:41.560> to<00:01:41.640> do<00:01:42.000> is<00:01:42.280> prefix" }, { "start": 102.63, "duration": 0.0, "text": "debugger, all you have to do is prefix" }, { "start": 102.64, "duration": 0.0, "text": "debugger, all you have to do is prefix that<00:01:42.760> with<00:01:42.920> radare2" }, { "start": 103.83, "duration": 0.0, "text": "that with radare2" }, { "start": 103.84, "duration": 0.0, "text": "that with radare2 as<00:01:43.960> long<00:01:44.160> as<00:01:44.280> you<00:01:44.320> can<00:01:44.480> access<00:01:45.360> this<00:01:45.600> in<00:01:45.720> your" }, { "start": 105.83, "duration": 0.0, "text": "as long as you can access this in your" }, { "start": 105.84, "duration": 0.0, "text": "as long as you can access this in your path.<00:01:46.120> Like<00:01:46.240> you<00:01:46.320> put<00:01:46.480> it,<00:01:46.920> you<00:01:47.000> know,<00:01:47.600> when" }, { "start": 107.79, "duration": 0.0, "text": "path. Like you put it, you know, when" }, { "start": 107.8, "duration": 0.0, "text": "path. Like you put it, you know, when you<00:01:48.080> get<00:01:48.280> the<00:01:48.360> executable,<00:01:48.840> you<00:01:48.920> put<00:01:49.080> it" }, { "start": 109.15, "duration": 0.0, "text": "you get the executable, you put it" }, { "start": 109.16, "duration": 0.0, "text": "you get the executable, you put it wherever<00:01:49.360> you<00:01:49.400> can<00:01:49.520> find<00:01:49.760> it<00:01:49.840> in<00:01:49.880> your<00:01:50.000> path<00:01:50.280> if" }, { "start": 110.39, "duration": 0.0, "text": "wherever you can find it in your path if" }, { "start": 110.4, "duration": 0.0, "text": "wherever you can find it in your path if you<00:01:50.480> want<00:01:50.600> to<00:01:50.680> run<00:01:50.760> it<00:01:50.840> from<00:01:50.960> command<00:01:51.280> line." }, { "start": 112.39, "duration": 0.0, "text": "you want to run it from command line." }, { "start": 112.4, "duration": 0.0, "text": "you want to run it from command line. Um" }, { "start": 113.91, "duration": 0.0, "text": "Um" }, { "start": 113.92, "duration": 0.0, "text": "Um and<00:01:54.040> then<00:01:54.120> if<00:01:54.240> you<00:01:54.400> open<00:01:54.920> if<00:01:55.000> If<00:01:55.080> run<00:01:55.280> this," }, { "start": 116.67, "duration": 0.0, "text": "and then if you open if If run this," }, { "start": 116.68, "duration": 0.0, "text": "and then if you open if If run this, it'll<00:01:56.920> open<00:01:57.160> the<00:01:57.240> debugger." }, { "start": 118.39, "duration": 0.0, "text": "it'll open the debugger." }, { "start": 118.4, "duration": 0.0, "text": "it'll open the debugger. And<00:01:58.720> what<00:01:58.840> it'll<00:01:59.040> do<00:01:59.240> is<00:01:59.360> it'll<00:01:59.520> pre-fill" }, { "start": 121.23, "duration": 0.0, "text": "And what it'll do is it'll pre-fill" }, { "start": 121.24, "duration": 0.0, "text": "And what it'll do is it'll pre-fill um" }, { "start": 122.07, "duration": 0.0, "text": "um" }, { "start": 122.08, "duration": 0.0, "text": "um it'll<00:02:02.280> create<00:02:02.520> a<00:02:02.560> target,<00:02:03.040> a<00:02:03.080> temporary" }, { "start": 123.55, "duration": 0.0, "text": "it'll create a target, a temporary" }, { "start": 123.56, "duration": 0.0, "text": "it'll create a target, a temporary target<00:02:03.880> for<00:02:04.360> for<00:02:04.680> the<00:02:05.240> executable<00:02:05.760> you<00:02:05.840> just" }, { "start": 125.99, "duration": 0.0, "text": "target for for the executable you just" }, { "start": 126.0, "duration": 0.0, "text": "target for for the executable you just passed." }, { "start": 127.55, "duration": 0.0, "text": "passed." }, { "start": 127.56, "duration": 0.0, "text": "passed. So,<00:02:07.720> targets<00:02:08.080> are<00:02:08.160> basically" }, { "start": 129.469, "duration": 0.0, "text": "So, targets are basically" }, { "start": 129.479, "duration": 0.0, "text": "So, targets are basically um<00:02:09.960> how<00:02:10.160> the<00:02:10.280> debugger<00:02:10.640> knows<00:02:11.760> uh<00:02:12.000> how<00:02:12.320> to" }, { "start": 132.59, "duration": 0.0, "text": "um how the debugger knows uh how to" }, { "start": 132.6, "duration": 0.0, "text": "um how the debugger knows uh how to launch<00:02:13.080> an<00:02:13.200> executable.<00:02:14.240> Um" }, { "start": 134.91, "duration": 0.0, "text": "launch an executable. Um" }, { "start": 134.92, "duration": 0.0, "text": "launch an executable. Um so,<00:02:15.160> I've<00:02:15.280> got<00:02:15.400> a<00:02:15.440> bunch<00:02:15.640> of<00:02:15.720> options<00:02:16.080> here." }, { "start": 136.75, "duration": 0.0, "text": "so, I've got a bunch of options here." }, { "start": 136.76, "duration": 0.0, "text": "so, I've got a bunch of options here. I've<00:02:16.880> got<00:02:17.080> this<00:02:17.360> for<00:02:17.480> example,<00:02:17.840> this<00:02:18.000> mule" }, { "start": 138.31, "duration": 0.0, "text": "I've got this for example, this mule" }, { "start": 138.32, "duration": 0.0, "text": "I've got this for example, this mule main.<00:02:18.640> This<00:02:18.800> is<00:02:18.959> what<00:02:19.280> something<00:02:19.560> we<00:02:19.640> use<00:02:19.800> for" }, { "start": 139.91, "duration": 0.0, "text": "main. This is what something we use for" }, { "start": 139.92, "duration": 0.0, "text": "main. This is what something we use for testing<00:02:20.240> in<00:02:20.360> the<00:02:20.400> debugger" }, { "start": 141.43, "duration": 0.0, "text": "testing in the debugger" }, { "start": 141.44, "duration": 0.0, "text": "testing in the debugger um<00:02:21.800> project.<00:02:22.959> And<00:02:23.320> you<00:02:23.400> can<00:02:23.520> see<00:02:23.600> it's<00:02:23.720> got<00:02:23.840> a" }, { "start": 143.87, "duration": 0.0, "text": "um project. And you can see it's got a" }, { "start": 143.88, "duration": 0.0, "text": "um project. And you can see it's got a bunch<00:02:24.040> of<00:02:24.120> options<00:02:24.480> here.<00:02:25.080> Um" }, { "start": 146.11, "duration": 0.0, "text": "bunch of options here. Um" }, { "start": 146.12, "duration": 0.0, "text": "bunch of options here. Um label<00:02:26.680> is<00:02:27.080> uh" }, { "start": 147.63, "duration": 0.0, "text": "label is uh" }, { "start": 147.64, "duration": 0.0, "text": "label is uh not<00:02:27.920> super<00:02:28.160> important.<00:02:28.440> It's<00:02:28.640> it's<00:02:29.360> um" }, { "start": 150.07, "duration": 0.0, "text": "not super important. It's it's um" }, { "start": 150.08, "duration": 0.0, "text": "not super important. It's it's um it's<00:02:30.200> just<00:02:30.320> something<00:02:30.520> you<00:02:30.600> can<00:02:30.720> tag<00:02:31.360> this" }, { "start": 151.83, "duration": 0.0, "text": "it's just something you can tag this" }, { "start": 151.84, "duration": 0.0, "text": "it's just something you can tag this target<00:02:32.200> with.<00:02:32.440> But" }, { "start": 153.47, "duration": 0.0, "text": "target with. But" }, { "start": 153.48, "duration": 0.0, "text": "target with. But um<00:02:34.000> you<00:02:34.120> supply<00:02:34.400> the<00:02:34.520> executable<00:02:35.000> path.<00:02:35.520> You" }, { "start": 155.59, "duration": 0.0, "text": "um you supply the executable path. You" }, { "start": 155.6, "duration": 0.0, "text": "um you supply the executable path. You can<00:02:35.720> put<00:02:35.840> in<00:02:36.000> arguments<00:02:36.480> here.<00:02:36.720> So,<00:02:36.800> you<00:02:36.840> can" }, { "start": 156.949, "duration": 0.0, "text": "can put in arguments here. So, you can" }, { "start": 156.959, "duration": 0.0, "text": "can put in arguments here. So, you can do<00:02:37.040> like<00:02:37.200> {dash}foo<00:02:37.680> {dash}bar<00:02:38.240> whatever," }, { "start": 158.79, "duration": 0.0, "text": "do like {dash}foo {dash}bar whatever," }, { "start": 158.8, "duration": 0.0, "text": "do like {dash}foo {dash}bar whatever, whatever<00:02:39.040> you<00:02:39.120> want<00:02:39.280> it<00:02:39.360> to<00:02:39.440> do.<00:02:39.959> And<00:02:40.040> the" }, { "start": 160.11, "duration": 0.0, "text": "whatever you want it to do. And the" }, { "start": 160.12, "duration": 0.0, "text": "whatever you want it to do. And the arguments<00:02:40.480> you<00:02:40.560> put<00:02:40.720> those<00:02:40.920> here." }, { "start": 162.15, "duration": 0.0, "text": "arguments you put those here." }, { "start": 162.16, "duration": 0.0, "text": "arguments you put those here. Whatever<00:02:42.480> working<00:02:42.840> directory<00:02:43.240> you<00:02:43.360> want<00:02:43.560> it" }, { "start": 163.63, "duration": 0.0, "text": "Whatever working directory you want it" }, { "start": 163.64, "duration": 0.0, "text": "Whatever working directory you want it to<00:02:43.760> start<00:02:44.120> the<00:02:44.240> executable<00:02:45.160> like<00:02:45.360> within<00:02:45.600> the" }, { "start": 165.67, "duration": 0.0, "text": "to start the executable like within the" }, { "start": 165.68, "duration": 0.0, "text": "to start the executable like within the context<00:02:46.160> of.<00:02:46.800> And<00:02:46.880> then<00:02:47.000> you<00:02:47.080> can<00:02:47.160> also" }, { "start": 167.35, "duration": 0.0, "text": "context of. And then you can also" }, { "start": 167.36, "duration": 0.0, "text": "context of. And then you can also specify<00:02:47.680> things<00:02:47.920> like<00:02:48.040> a<00:02:48.120> custom<00:02:48.520> entry" }, { "start": 168.79, "duration": 0.0, "text": "specify things like a custom entry" }, { "start": 168.8, "duration": 0.0, "text": "specify things like a custom entry point.<00:02:49.800> Um<00:02:50.560> a<00:02:50.680> file<00:02:51.040> path<00:02:51.360> for<00:02:51.480> standard<00:02:51.880> out," }, { "start": 172.11, "duration": 0.0, "text": "point. Um a file path for standard out," }, { "start": 172.12, "duration": 0.0, "text": "point. Um a file path for standard out, standard<00:02:52.640> error,<00:02:52.959> and<00:02:53.120> standard<00:02:53.520> in.<00:02:53.920> You<00:02:54.000> can" }, { "start": 174.15, "duration": 0.0, "text": "standard error, and standard in. You can" }, { "start": 174.16, "duration": 0.0, "text": "standard error, and standard in. You can put<00:02:54.320> file<00:02:54.520> paths<00:02:54.760> here<00:02:55.000> and<00:02:55.120> then<00:02:55.240> it'll<00:02:55.720> use" }, { "start": 175.91, "duration": 0.0, "text": "put file paths here and then it'll use" }, { "start": 175.92, "duration": 0.0, "text": "put file paths here and then it'll use those<00:02:56.200> instead<00:02:56.520> of<00:02:57.120> um" }, { "start": 177.79, "duration": 0.0, "text": "those instead of um" }, { "start": 177.8, "duration": 0.0, "text": "those instead of um instead<00:02:58.120> of<00:02:58.160> the<00:02:58.280> defaults.<00:02:59.280> You<00:02:59.360> can<00:02:59.480> add" }, { "start": 179.59, "duration": 0.0, "text": "instead of the defaults. You can add" }, { "start": 179.6, "duration": 0.0, "text": "instead of the defaults. You can add custom<00:02:59.920> environment<00:03:00.400> strings.<00:03:01.200> And<00:03:01.320> then<00:03:01.480> you" }, { "start": 181.55, "duration": 0.0, "text": "custom environment strings. And then you" }, { "start": 181.56, "duration": 0.0, "text": "custom environment strings. And then you can<00:03:01.680> also" }, { "start": 182.87, "duration": 0.0, "text": "can also" }, { "start": 182.88, "duration": 0.0, "text": "can also enable<00:03:03.200> or<00:03:03.280> disable<00:03:03.920> debugging<00:03:04.280> of<00:03:04.400> sub" }, { "start": 184.63, "duration": 0.0, "text": "enable or disable debugging of sub" }, { "start": 184.64, "duration": 0.0, "text": "enable or disable debugging of sub processes.<00:03:05.280> Meaning<00:03:05.519> if<00:03:05.680> this<00:03:05.959> executable" }, { "start": 186.47, "duration": 0.0, "text": "processes. Meaning if this executable" }, { "start": 186.48, "duration": 0.0, "text": "processes. Meaning if this executable launched<00:03:06.840> another<00:03:07.160> process,<00:03:08.120> would<00:03:08.280> the" }, { "start": 188.35, "duration": 0.0, "text": "launched another process, would the" }, { "start": 188.36, "duration": 0.0, "text": "launched another process, would the debugger<00:03:08.720> automatically<00:03:09.160> attach<00:03:09.480> to<00:03:09.640> it<00:03:09.840> or" }, { "start": 189.949, "duration": 0.0, "text": "debugger automatically attach to it or" }, { "start": 189.959, "duration": 0.0, "text": "debugger automatically attach to it or not?<00:03:10.800> Um<00:03:10.880> sometimes<00:03:11.280> you<00:03:11.320> want<00:03:11.480> one," }, { "start": 191.67, "duration": 0.0, "text": "not? Um sometimes you want one," }, { "start": 191.68, "duration": 0.0, "text": "not? Um sometimes you want one, sometimes<00:03:12.000> you<00:03:12.080> want<00:03:12.880> uh" }, { "start": 193.47, "duration": 0.0, "text": "sometimes you want uh" }, { "start": 193.48, "duration": 0.0, "text": "sometimes you want uh the<00:03:13.600> other.<00:03:14.200> So,<00:03:14.400> that's<00:03:14.640> why<00:03:14.959> it's<00:03:15.120> this<00:03:15.519> uh" }, { "start": 195.59, "duration": 0.0, "text": "the other. So, that's why it's this uh" }, { "start": 195.6, "duration": 0.0, "text": "the other. So, that's why it's this uh per<00:03:15.720> target<00:03:16.000> option<00:03:16.280> here." }, { "start": 197.55, "duration": 0.0, "text": "per target option here." }, { "start": 197.56, "duration": 0.0, "text": "per target option here. >> Hi<00:03:17.680> everyone.<00:03:18.440> Let<00:03:18.720> me<00:03:18.800> take<00:03:19.040> a<00:03:19.080> break<00:03:19.360> to" }, { "start": 199.47, "duration": 0.0, "text": ">> Hi everyone. Let me take a break to" }, { "start": 199.48, "duration": 0.0, "text": ">> Hi everyone. Let me take a break to thank<00:03:19.720> members<00:03:20.239> of<00:03:20.400> the<00:03:20.560> show<00:03:20.920> who<00:03:21.120> made<00:03:21.400> this" }, { "start": 201.55, "duration": 0.0, "text": "thank members of the show who made this" }, { "start": 201.56, "duration": 0.0, "text": "thank members of the show who made this conversation<00:03:22.280> possible.<00:03:23.239> Members<00:03:23.720> get" }, { "start": 203.99, "duration": 0.0, "text": "conversation possible. Members get" }, { "start": 204.0, "duration": 0.0, "text": "conversation possible. Members get earlier<00:03:24.360> access<00:03:24.760> to<00:03:24.880> videos<00:03:25.519> including" }, { "start": 206.03, "duration": 0.0, "text": "earlier access to videos including" }, { "start": 206.04, "duration": 0.0, "text": "earlier access to videos including longer<00:03:26.600> unedited<00:03:27.360> footage<00:03:27.880> from<00:03:28.160> live" }, { "start": 208.39, "duration": 0.0, "text": "longer unedited footage from live" }, { "start": 208.4, "duration": 0.0, "text": "longer unedited footage from live streams<00:03:29.120> as<00:03:29.400> well<00:03:29.600> as<00:03:29.760> they're<00:03:30.000> invited<00:03:30.760> to" }, { "start": 210.87, "duration": 0.0, "text": "streams as well as they're invited to" }, { "start": 210.88, "duration": 0.0, "text": "streams as well as they're invited to our<00:03:31.040> private<00:03:31.600> Discord<00:03:32.080> server.<00:03:32.880> If<00:03:33.080> you<00:03:33.239> want" }, { "start": 213.47, "duration": 0.0, "text": "our private Discord server. If you want" }, { "start": 213.48, "duration": 0.0, "text": "our private Discord server. If you want to<00:03:33.600> support<00:03:33.959> the<00:03:34.080> show,<00:03:34.400> there<00:03:34.600> is<00:03:34.800> no<00:03:35.040> better" }, { "start": 215.39, "duration": 0.0, "text": "to support the show, there is no better" }, { "start": 215.4, "duration": 0.0, "text": "to support the show, there is no better way<00:03:35.600> than<00:03:35.840> becoming<00:03:36.400> a<00:03:36.480> member<00:03:37.040> on<00:03:37.280> YouTube<00:03:37.800> or" }, { "start": 217.99, "duration": 0.0, "text": "way than becoming a member on YouTube or" }, { "start": 218.0, "duration": 0.0, "text": "way than becoming a member on YouTube or Patreon.<00:03:38.959> Thank<00:03:39.280> you<00:03:39.600> so<00:03:39.840> much." }, { "start": 221.43, "duration": 0.0, "text": "Patreon. Thank you so much." }, { "start": 221.44, "duration": 0.0, "text": "Patreon. Thank you so much. >> So,<00:03:41.480> anyways,<00:03:42.360> when<00:03:42.519> you<00:03:42.640> run<00:03:43.360> the<00:03:43.920> debugger" }, { "start": 225.07, "duration": 0.0, "text": ">> So, anyways, when you run the debugger" }, { "start": 225.08, "duration": 0.0, "text": ">> So, anyways, when you run the debugger with<00:03:45.280> that<00:03:45.440> command<00:03:45.760> line,<00:03:46.000> it'll<00:03:46.280> create<00:03:46.519> one" }, { "start": 226.63, "duration": 0.0, "text": "with that command line, it'll create one" }, { "start": 226.64, "duration": 0.0, "text": "with that command line, it'll create one of<00:03:46.720> these<00:03:47.120> just<00:03:47.360> for<00:03:47.600> you.<00:03:48.440> Um<00:03:48.519> it'll<00:03:48.640> be" }, { "start": 228.75, "duration": 0.0, "text": "of these just for you. Um it'll be" }, { "start": 228.76, "duration": 0.0, "text": "of these just for you. Um it'll be thrown<00:03:49.000> away<00:03:49.239> when<00:03:49.400> you<00:03:49.519> exit<00:03:49.800> the<00:03:49.880> debugger." }, { "start": 230.229, "duration": 0.0, "text": "thrown away when you exit the debugger." }, { "start": 230.239, "duration": 0.0, "text": "thrown away when you exit the debugger. So,<00:03:50.440> it<00:03:50.519> won't<00:03:51.160> uh<00:03:51.320> like<00:03:51.680> stick<00:03:51.880> around.<00:03:52.160> You" }, { "start": 232.229, "duration": 0.0, "text": "So, it won't uh like stick around. You" }, { "start": 232.239, "duration": 0.0, "text": "So, it won't uh like stick around. You can<00:03:52.360> run<00:03:52.960> the<00:03:53.040> debugger<00:03:53.360> that<00:03:53.520> way<00:03:53.680> every" }, { "start": 233.87, "duration": 0.0, "text": "can run the debugger that way every" }, { "start": 233.88, "duration": 0.0, "text": "can run the debugger that way every single<00:03:54.080> time<00:03:54.320> if<00:03:54.440> you<00:03:54.520> want<00:03:54.720> to." }, { "start": 235.67, "duration": 0.0, "text": "single time if you want to." }, { "start": 235.68, "duration": 0.0, "text": "single time if you want to. Um" }, { "start": 236.83, "duration": 0.0, "text": "Um" }, { "start": 236.84, "duration": 0.0, "text": "Um Or<00:03:57.040> you<00:03:57.120> can<00:03:57.280> create<00:03:57.480> a<00:03:57.520> target<00:03:57.840> within<00:03:58.080> the" }, { "start": 238.11, "duration": 0.0, "text": "Or you can create a target within the" }, { "start": 238.12, "duration": 0.0, "text": "Or you can create a target within the context<00:03:58.880> of<00:03:59.680> the<00:03:59.800> debugger's<00:04:00.240> UI.<00:04:00.560> So,<00:04:00.720> to<00:04:00.840> do" }, { "start": 240.99, "duration": 0.0, "text": "context of the debugger's UI. So, to do" }, { "start": 241.0, "duration": 0.0, "text": "context of the debugger's UI. So, to do that,<00:04:01.240> all<00:04:01.320> you<00:04:01.440> do<00:04:01.840> is<00:04:02.720> you<00:04:02.800> can<00:04:02.920> click<00:04:03.120> this" }, { "start": 243.27, "duration": 0.0, "text": "that, all you do is you can click this" }, { "start": 243.28, "duration": 0.0, "text": "that, all you do is you can click this add<00:04:03.520> target<00:04:03.840> thing.<00:04:04.160> Actually,<00:04:04.680> maybe<00:04:04.920> what<00:04:05.080> I" }, { "start": 245.11, "duration": 0.0, "text": "add target thing. Actually, maybe what I" }, { "start": 245.12, "duration": 0.0, "text": "add target thing. Actually, maybe what I should<00:04:05.280> do<00:04:05.560> is<00:04:05.720> show<00:04:05.920> how<00:04:06.040> the<00:04:06.160> UI<00:04:07.120> paneling" }, { "start": 247.51, "duration": 0.0, "text": "should do is show how the UI paneling" }, { "start": 247.52, "duration": 0.0, "text": "should do is show how the UI paneling works<00:04:07.760> first.<00:04:08.160> So,<00:04:08.320> like<00:04:09.160> um<00:04:09.560> cuz" }, { "start": 250.47, "duration": 0.0, "text": "works first. So, like um cuz" }, { "start": 250.48, "duration": 0.0, "text": "works first. So, like um cuz it<00:04:10.680> comes<00:04:11.000> like<00:04:11.160> preloaded<00:04:11.640> with<00:04:11.760> a<00:04:11.800> bunch<00:04:12.000> of" }, { "start": 252.11, "duration": 0.0, "text": "it comes like preloaded with a bunch of" }, { "start": 252.12, "duration": 0.0, "text": "it comes like preloaded with a bunch of default<00:04:12.520> layouts<00:04:12.920> or<00:04:13.000> three<00:04:13.320> default" }, { "start": 253.67, "duration": 0.0, "text": "default layouts or three default" }, { "start": 253.68, "duration": 0.0, "text": "default layouts or three default layouts.<00:04:14.560> And<00:04:14.680> I<00:04:14.760> can<00:04:14.880> show<00:04:15.080> people<00:04:15.400> how<00:04:15.680> to" }, { "start": 256.789, "duration": 0.0, "text": "layouts. And I can show people how to" }, { "start": 256.799, "duration": 0.0, "text": "layouts. And I can show people how to get<00:04:17.000> to<00:04:17.079> this<00:04:17.239> tab<00:04:17.560> if<00:04:17.640> they<00:04:17.720> don't<00:04:17.959> see<00:04:18.160> it<00:04:18.320> or" }, { "start": 258.67, "duration": 0.0, "text": "get to this tab if they don't see it or" }, { "start": 258.68, "duration": 0.0, "text": "get to this tab if they don't see it or or<00:04:18.799> have<00:04:19.000> it<00:04:19.079> or<00:04:19.160> something<00:04:19.400> like<00:04:19.519> that.<00:04:19.760> So," }, { "start": 260.71, "duration": 0.0, "text": "or have it or something like that. So," }, { "start": 260.72, "duration": 0.0, "text": "or have it or something like that. So, um<00:04:21.000> obviously<00:04:21.880> um" }, { "start": 263.27, "duration": 0.0, "text": "um obviously um" }, { "start": 263.28, "duration": 0.0, "text": "um obviously um uh<00:04:23.720> when<00:04:24.400> this<00:04:24.600> is<00:04:24.720> one<00:04:24.840> of<00:04:24.919> the<00:04:25.000> default" }, { "start": 265.35, "duration": 0.0, "text": "uh when this is one of the default" }, { "start": 265.36, "duration": 0.0, "text": "uh when this is one of the default layouts,<00:04:26.280> uh<00:04:26.680> and<00:04:26.840> I<00:04:26.919> pick<00:04:27.160> one<00:04:27.280> of<00:04:27.320> these" }, { "start": 267.47, "duration": 0.0, "text": "layouts, uh and I pick one of these" }, { "start": 267.48, "duration": 0.0, "text": "layouts, uh and I pick one of these depending<00:04:27.800> on<00:04:27.919> screen<00:04:28.240> size.<00:04:28.520> So,<00:04:29.080> the" }, { "start": 269.19, "duration": 0.0, "text": "depending on screen size. So, the" }, { "start": 269.2, "duration": 0.0, "text": "depending on screen size. So, the default<00:04:29.600> layout<00:04:29.840> is<00:04:29.960> like<00:04:30.160> this,<00:04:30.400> but<00:04:30.520> you<00:04:30.600> can" }, { "start": 270.71, "duration": 0.0, "text": "default layout is like this, but you can" }, { "start": 270.72, "duration": 0.0, "text": "default layout is like this, but you can see<00:04:30.840> it<00:04:30.960> doesn't<00:04:31.240> work<00:04:31.440> super<00:04:31.720> well<00:04:31.960> when<00:04:32.080> you" }, { "start": 272.15, "duration": 0.0, "text": "see it doesn't work super well when you" }, { "start": 272.16, "duration": 0.0, "text": "see it doesn't work super well when you have<00:04:32.320> like<00:04:32.480> a<00:04:32.560> larger<00:04:32.880> font<00:04:33.120> size.<00:04:33.360> Like,<00:04:33.480> if" }, { "start": 273.55, "duration": 0.0, "text": "have like a larger font size. Like, if" }, { "start": 273.56, "duration": 0.0, "text": "have like a larger font size. Like, if you're<00:04:33.680> on<00:04:33.760> a<00:04:33.800> super<00:04:34.080> high<00:04:34.240> DPI<00:04:35.360> monitor,<00:04:35.840> this" }, { "start": 275.99, "duration": 0.0, "text": "you're on a super high DPI monitor, this" }, { "start": 276.0, "duration": 0.0, "text": "you're on a super high DPI monitor, this is<00:04:36.080> just<00:04:36.320> a<00:04:36.360> little<00:04:36.560> bit<00:04:36.919> like<00:04:37.560> chaotic.<00:04:38.280> Um" }, { "start": 278.83, "duration": 0.0, "text": "is just a little bit like chaotic. Um" }, { "start": 278.84, "duration": 0.0, "text": "is just a little bit like chaotic. Um in<00:04:38.919> fact,<00:04:39.120> I<00:04:39.160> think<00:04:39.320> it<00:04:39.360> might<00:04:39.480> be<00:04:39.560> a<00:04:39.600> little" }, { "start": 279.83, "duration": 0.0, "text": "in fact, I think it might be a little" }, { "start": 279.84, "duration": 0.0, "text": "in fact, I think it might be a little bit<00:04:40.080> too<00:04:40.240> chaotic<00:04:40.680> anyways,<00:04:41.080> but<00:04:41.200> it's" }, { "start": 281.47, "duration": 0.0, "text": "bit too chaotic anyways, but it's" }, { "start": 281.48, "duration": 0.0, "text": "bit too chaotic anyways, but it's especially<00:04:41.840> chaotic<00:04:42.200> if<00:04:42.320> you<00:04:42.400> have<00:04:42.560> like<00:04:42.720> a" }, { "start": 282.75, "duration": 0.0, "text": "especially chaotic if you have like a" }, { "start": 282.76, "duration": 0.0, "text": "especially chaotic if you have like a smaller" }, { "start": 284.23, "duration": 0.0, "text": "smaller" }, { "start": 284.24, "duration": 0.0, "text": "smaller um<00:04:44.720> if<00:04:44.880> you<00:04:44.919> have<00:04:45.040> a<00:04:45.080> larger<00:04:45.320> font<00:04:45.560> size," }, { "start": 285.75, "duration": 0.0, "text": "um if you have a larger font size," }, { "start": 285.76, "duration": 0.0, "text": "um if you have a larger font size, basically,<00:04:46.440> um<00:04:46.840> on<00:04:47.080> a<00:04:47.400> higher<00:04:47.600> DPI<00:04:47.919> screen." }, { "start": 288.23, "duration": 0.0, "text": "basically, um on a higher DPI screen." }, { "start": 288.24, "duration": 0.0, "text": "basically, um on a higher DPI screen. So," }, { "start": 289.59, "duration": 0.0, "text": "So," }, { "start": 289.6, "duration": 0.0, "text": "So, um<00:04:49.960> many<00:04:50.160> times<00:04:50.400> it'll<00:04:50.560> pick<00:04:50.720> this<00:04:50.880> compact" }, { "start": 291.43, "duration": 0.0, "text": "um many times it'll pick this compact" }, { "start": 291.44, "duration": 0.0, "text": "um many times it'll pick this compact layout." }, { "start": 292.59, "duration": 0.0, "text": "layout." }, { "start": 292.6, "duration": 0.0, "text": "layout. This<00:04:52.840> still<00:04:53.040> has<00:04:53.200> a<00:04:53.280> lot<00:04:53.440> of<00:04:53.520> stuff<00:04:53.800> that<00:04:53.919> you" }, { "start": 293.99, "duration": 0.0, "text": "This still has a lot of stuff that you" }, { "start": 294.0, "duration": 0.0, "text": "This still has a lot of stuff that you might<00:04:54.120> just<00:04:54.280> not<00:04:54.440> care<00:04:54.640> about.<00:04:55.040> And<00:04:55.120> then" }, { "start": 295.23, "duration": 0.0, "text": "might just not care about. And then" }, { "start": 295.24, "duration": 0.0, "text": "might just not care about. And then there's<00:04:55.440> this<00:04:55.640> simple<00:04:55.960> panel<00:04:56.280> layout,<00:04:56.520> which" }, { "start": 296.67, "duration": 0.0, "text": "there's this simple panel layout, which" }, { "start": 296.68, "duration": 0.0, "text": "there's this simple panel layout, which is<00:04:56.800> literally<00:04:57.280> an<00:04:57.400> area<00:04:57.640> for<00:04:57.760> source<00:04:58.000> code<00:04:58.560> and" }, { "start": 298.67, "duration": 0.0, "text": "is literally an area for source code and" }, { "start": 298.68, "duration": 0.0, "text": "is literally an area for source code and an<00:04:58.760> area<00:04:59.080> for" }, { "start": 300.15, "duration": 0.0, "text": "an area for" }, { "start": 300.16, "duration": 0.0, "text": "an area for uh<00:05:00.360> a<00:05:00.440> watch<00:05:00.680> window.<00:05:01.040> Now," }, { "start": 302.87, "duration": 0.0, "text": "uh a watch window. Now," }, { "start": 302.88, "duration": 0.0, "text": "uh a watch window. Now, I<00:05:02.919> could<00:05:03.120> start<00:05:03.280> with<00:05:03.400> this.<00:05:04.080> Um<00:05:04.880> what<00:05:05.040> I" }, { "start": 305.11, "duration": 0.0, "text": "I could start with this. Um what I" }, { "start": 305.12, "duration": 0.0, "text": "I could start with this. Um what I should<00:05:05.400> say<00:05:05.560> first<00:05:05.880> is<00:05:05.960> that<00:05:06.200> no-<00:05:06.440> nothing" }, { "start": 306.71, "duration": 0.0, "text": "should say first is that no- nothing" }, { "start": 306.72, "duration": 0.0, "text": "should say first is that no- nothing about<00:05:06.880> these<00:05:07.000> panels<00:05:07.320> are<00:05:07.400> special,<00:05:08.040> so<00:05:08.240> I<00:05:08.280> can" }, { "start": 308.51, "duration": 0.0, "text": "about these panels are special, so I can" }, { "start": 308.52, "duration": 0.0, "text": "about these panels are special, so I can I<00:05:08.600> can<00:05:08.840> rearrange<00:05:09.360> these<00:05:09.600> however<00:05:09.880> I<00:05:09.960> want.<00:05:10.680> Um" }, { "start": 311.19, "duration": 0.0, "text": "I can rearrange these however I want. Um" }, { "start": 311.2, "duration": 0.0, "text": "I can rearrange these however I want. Um it's<00:05:11.360> just<00:05:11.880> I<00:05:11.919> can<00:05:12.000> put<00:05:12.120> them<00:05:12.200> both<00:05:12.360> on<00:05:12.440> the" }, { "start": 312.51, "duration": 0.0, "text": "it's just I can put them both on the" }, { "start": 312.52, "duration": 0.0, "text": "it's just I can put them both on the same<00:05:12.720> tab<00:05:12.960> if<00:05:13.080> I<00:05:13.120> want<00:05:13.400> to.<00:05:13.560> I<00:05:13.640> can<00:05:13.760> do<00:05:14.480> like" }, { "start": 314.67, "duration": 0.0, "text": "same tab if I want to. I can do like" }, { "start": 314.68, "duration": 0.0, "text": "same tab if I want to. I can do like whatever<00:05:14.919> kind<00:05:15.120> of<00:05:15.200> organization<00:05:15.760> I<00:05:15.840> want," }, { "start": 316.51, "duration": 0.0, "text": "whatever kind of organization I want," }, { "start": 316.52, "duration": 0.0, "text": "whatever kind of organization I want, that'll<00:05:16.800> just<00:05:17.240> be<00:05:17.400> fine.<00:05:18.240> Um" }, { "start": 319.71, "duration": 0.0, "text": "that'll just be fine. Um" }, { "start": 319.72, "duration": 0.0, "text": "that'll just be fine. Um So,<00:05:19.880> if<00:05:20.120> I<00:05:20.160> have<00:05:20.400> nothing," }, { "start": 321.63, "duration": 0.0, "text": "So, if I have nothing," }, { "start": 321.64, "duration": 0.0, "text": "So, if I have nothing, um<00:05:22.000> it'll<00:05:22.160> just<00:05:22.360> have<00:05:22.480> this<00:05:22.680> empty<00:05:22.960> panel" }, { "start": 323.27, "duration": 0.0, "text": "um it'll just have this empty panel" }, { "start": 323.28, "duration": 0.0, "text": "um it'll just have this empty panel here.<00:05:24.000> I<00:05:24.080> can<00:05:24.600> uh<00:05:24.680> I<00:05:24.760> can<00:05:24.880> click<00:05:25.080> this<00:05:25.240> plus<00:05:25.480> to" }, { "start": 325.59, "duration": 0.0, "text": "here. I can uh I can click this plus to" }, { "start": 325.6, "duration": 0.0, "text": "here. I can uh I can click this plus to add<00:05:25.720> a<00:05:25.760> new<00:05:25.919> tab.<00:05:26.600> I<00:05:26.640> can<00:05:26.760> add<00:05:26.880> a<00:05:26.919> watch<00:05:27.200> window." }, { "start": 328.39, "duration": 0.0, "text": "add a new tab. I can add a watch window." }, { "start": 328.4, "duration": 0.0, "text": "add a new tab. I can add a watch window. Um<00:05:28.560> and<00:05:28.680> then<00:05:28.760> if<00:05:28.880> I<00:05:28.919> want<00:05:29.120> to<00:05:29.160> look<00:05:29.280> at<00:05:29.360> my" }, { "start": 329.43, "duration": 0.0, "text": "Um and then if I want to look at my" }, { "start": 329.44, "duration": 0.0, "text": "Um and then if I want to look at my targets,<00:05:30.000> I<00:05:30.080> can<00:05:30.840> uh<00:05:30.960> I<00:05:31.000> can<00:05:31.160> search<00:05:31.600> by" }, { "start": 331.71, "duration": 0.0, "text": "targets, I can uh I can search by" }, { "start": 331.72, "duration": 0.0, "text": "targets, I can uh I can search by typing,<00:05:32.320> and<00:05:32.480> there's<00:05:32.680> just<00:05:32.840> a<00:05:32.880> targets<00:05:33.200> tab" }, { "start": 333.39, "duration": 0.0, "text": "typing, and there's just a targets tab" }, { "start": 333.4, "duration": 0.0, "text": "typing, and there's just a targets tab that<00:05:33.520> I<00:05:33.560> can<00:05:33.680> open<00:05:33.880> up,<00:05:33.960> and<00:05:34.080> there's<00:05:34.320> all<00:05:34.400> my" }, { "start": 334.51, "duration": 0.0, "text": "that I can open up, and there's all my" }, { "start": 334.52, "duration": 0.0, "text": "that I can open up, and there's all my targets." }, { "start": 336.75, "duration": 0.0, "text": "targets." }, { "start": 336.76, "duration": 0.0, "text": "targets. Um" }, { "start": 338.07, "duration": 0.0, "text": "Um" }, { "start": 338.08, "duration": 0.0, "text": "Um So,<00:05:38.200> anyways," }, { "start": 339.39, "duration": 0.0, "text": "So, anyways," }, { "start": 339.4, "duration": 0.0, "text": "So, anyways, we're<00:05:39.520> at<00:05:39.600> the<00:05:39.680> list<00:05:39.840> of<00:05:39.919> targets.<00:05:40.240> We<00:05:40.280> have" }, { "start": 340.39, "duration": 0.0, "text": "we're at the list of targets. We have" }, { "start": 340.4, "duration": 0.0, "text": "we're at the list of targets. We have all<00:05:40.520> these<00:05:40.760> executables<00:05:41.280> we<00:05:41.400> can<00:05:41.560> launch<00:05:41.840> and" }, { "start": 341.95, "duration": 0.0, "text": "all these executables we can launch and" }, { "start": 341.96, "duration": 0.0, "text": "all these executables we can launch and debug." }, { "start": 344.07, "duration": 0.0, "text": "debug." }, { "start": 344.08, "duration": 0.0, "text": "debug. Um<00:05:44.840> if<00:05:45.040> I<00:05:45.160> don't<00:05:45.640> have<00:05:46.400> the<00:05:46.520> one<00:05:46.720> I<00:05:46.800> want<00:05:47.120> to<00:05:47.400> run" }, { "start": 347.63, "duration": 0.0, "text": "Um if I don't have the one I want to run" }, { "start": 347.64, "duration": 0.0, "text": "Um if I don't have the one I want to run from<00:05:47.800> here,<00:05:48.360> I<00:05:48.440> can<00:05:48.600> click<00:05:48.800> add<00:05:49.000> target," }, { "start": 349.75, "duration": 0.0, "text": "from here, I can click add target," }, { "start": 349.76, "duration": 0.0, "text": "from here, I can click add target, brings<00:05:49.960> up<00:05:50.080> this<00:05:50.200> little<00:05:50.440> file,<00:05:51.600> um" }, { "start": 352.51, "duration": 0.0, "text": "brings up this little file, um" }, { "start": 352.52, "duration": 0.0, "text": "brings up this little file, um this<00:05:52.880> this<00:05:53.080> like<00:05:53.400> file<00:05:53.720> browser,<00:05:54.760> um" }, { "start": 356.59, "duration": 0.0, "text": "this this like file browser, um" }, { "start": 356.6, "duration": 0.0, "text": "this this like file browser, um and<00:05:56.720> I<00:05:56.760> don't<00:05:56.960> know.<00:05:57.080> I<00:05:57.120> mean,<00:05:57.280> I've<00:05:57.400> added<00:05:57.600> all" }, { "start": 357.67, "duration": 0.0, "text": "and I don't know. I mean, I've added all" }, { "start": 357.68, "duration": 0.0, "text": "and I don't know. I mean, I've added all the<00:05:57.800> executables<00:05:58.360> I<00:05:58.400> care<00:05:58.640> to<00:05:58.760> show,<00:05:59.120> but<00:05:59.880> I" }, { "start": 359.99, "duration": 0.0, "text": "the executables I care to show, but I" }, { "start": 360.0, "duration": 0.0, "text": "the executables I care to show, but I can<00:06:00.160> just<00:06:00.320> go<00:06:00.520> to<00:06:00.680> like" }, { "start": 361.87, "duration": 0.0, "text": "can just go to like" }, { "start": 361.88, "duration": 0.0, "text": "can just go to like like,<00:06:02.040> you<00:06:02.120> know,<00:06:02.240> you<00:06:02.320> can<00:06:02.440> just<00:06:02.600> type" }, { "start": 363.75, "duration": 0.0, "text": "like, you know, you can just type" }, { "start": 363.76, "duration": 0.0, "text": "like, you know, you can just type find<00:06:03.960> whatever<00:06:04.200> path<00:06:04.480> you<00:06:04.600> want,<00:06:05.200> um" }, { "start": 365.91, "duration": 0.0, "text": "find whatever path you want, um" }, { "start": 365.92, "duration": 0.0, "text": "find whatever path you want, um >> at<00:06:06.040> the<00:06:06.120> debugger<00:06:06.520> itself." }, { "start": 368.27, "duration": 0.0, "text": ">> at the debugger itself." }, { "start": 368.28, "duration": 0.0, "text": ">> at the debugger itself. >> I<00:06:08.560> I<00:06:08.640> already<00:06:08.880> have<00:06:09.040> that<00:06:09.200> one<00:06:09.560> right<00:06:09.760> here." }, { "start": 370.31, "duration": 0.0, "text": ">> I I already have that one right here." }, { "start": 370.32, "duration": 0.0, "text": ">> I I already have that one right here. This<00:06:10.480> is<00:06:10.600> the<00:06:10.680> This<00:06:10.840> is<00:06:10.920> the<00:06:10.960> one<00:06:11.080> I<00:06:11.120> use<00:06:11.320> for" }, { "start": 371.67, "duration": 0.0, "text": "This is the This is the one I use for" }, { "start": 371.68, "duration": 0.0, "text": "This is the This is the one I use for actually<00:06:12.080> working<00:06:12.360> on<00:06:12.440> the<00:06:12.480> debugger,<00:06:12.800> but" }, { "start": 373.31, "duration": 0.0, "text": "actually working on the debugger, but" }, { "start": 373.32, "duration": 0.0, "text": "actually working on the debugger, but yeah,<00:06:13.480> I<00:06:13.520> mean,<00:06:13.680> if<00:06:13.800> I<00:06:13.880> wanted<00:06:14.200> to<00:06:14.400> do<00:06:14.600> that," }, { "start": 374.79, "duration": 0.0, "text": "yeah, I mean, if I wanted to do that," }, { "start": 374.8, "duration": 0.0, "text": "yeah, I mean, if I wanted to do that, I'd<00:06:14.920> just<00:06:15.080> do<00:06:15.840> radare2.exe," }, { "start": 377.43, "duration": 0.0, "text": "I'd just do radare2.exe," }, { "start": 377.44, "duration": 0.0, "text": "I'd just do radare2.exe, opens<00:06:17.760> up<00:06:17.880> the<00:06:17.960> editor<00:06:18.320> for<00:06:18.520> it.<00:06:18.600> I<00:06:18.640> can<00:06:18.760> say" }, { "start": 378.909, "duration": 0.0, "text": "opens up the editor for it. I can say" }, { "start": 378.919, "duration": 0.0, "text": "opens up the editor for it. I can say like<00:06:19.200> dash<00:06:19.480> foo,<00:06:19.720> dash<00:06:20.000> bar,<00:06:20.960> um<00:06:21.040> whatever<00:06:21.280> I" }, { "start": 381.35, "duration": 0.0, "text": "like dash foo, dash bar, um whatever I" }, { "start": 381.36, "duration": 0.0, "text": "like dash foo, dash bar, um whatever I want<00:06:21.640> here,<00:06:22.360> um<00:06:22.640> and<00:06:22.760> then" }, { "start": 384.07, "duration": 0.0, "text": "want here, um and then" }, { "start": 384.08, "duration": 0.0, "text": "want here, um and then this<00:06:24.240> is<00:06:24.320> something<00:06:24.560> I<00:06:24.600> can<00:06:24.720> now<00:06:24.919> launch.<00:06:25.440> So," }, { "start": 385.83, "duration": 0.0, "text": "this is something I can now launch. So," }, { "start": 385.84, "duration": 0.0, "text": "this is something I can now launch. So, I'll<00:06:25.960> remove<00:06:26.240> it<00:06:26.360> cuz<00:06:26.560> I<00:06:26.640> already<00:06:26.880> have<00:06:27.080> one" }, { "start": 387.23, "duration": 0.0, "text": "I'll remove it cuz I already have one" }, { "start": 387.24, "duration": 0.0, "text": "I'll remove it cuz I already have one for<00:06:27.440> it." }, { "start": 389.15, "duration": 0.0, "text": "for it." }, { "start": 389.16, "duration": 0.0, "text": "for it. Um" }, { "start": 390.19, "duration": 0.0, "text": "Um" }, { "start": 390.2, "duration": 0.0, "text": "Um but<00:06:30.280> anyways,<00:06:30.640> I've<00:06:30.760> got<00:06:31.200> an<00:06:31.280> executable<00:06:31.760> that" }, { "start": 391.87, "duration": 0.0, "text": "but anyways, I've got an executable that" }, { "start": 391.88, "duration": 0.0, "text": "but anyways, I've got an executable that I<00:06:31.919> want<00:06:32.080> to<00:06:32.160> debug.<00:06:33.120> Um<00:06:33.640> I<00:06:33.919> can<00:06:34.280> either<00:06:34.720> run<00:06:35.000> it." }, { "start": 395.55, "duration": 0.0, "text": "I want to debug. Um I can either run it." }, { "start": 395.56, "duration": 0.0, "text": "I want to debug. Um I can either run it. Um<00:06:35.840> in<00:06:35.960> this<00:06:36.080> case,<00:06:36.240> it's<00:06:36.360> a<00:06:36.400> test<00:06:36.720> executable" }, { "start": 397.19, "duration": 0.0, "text": "Um in this case, it's a test executable" }, { "start": 397.2, "duration": 0.0, "text": "Um in this case, it's a test executable that<00:06:37.520> you<00:06:37.640> want<00:06:37.840> to<00:06:37.919> step<00:06:38.160> through,<00:06:38.480> so<00:06:38.640> I" }, { "start": 398.71, "duration": 0.0, "text": "that you want to step through, so I" }, { "start": 398.72, "duration": 0.0, "text": "that you want to step through, so I won't<00:06:39.080> I<00:06:39.120> won't<00:06:39.280> do<00:06:39.360> that.<00:06:40.080> Um<00:06:40.560> but<00:06:40.640> I<00:06:40.680> can<00:06:40.760> also" }, { "start": 400.95, "duration": 0.0, "text": "won't I won't do that. Um but I can also" }, { "start": 400.96, "duration": 0.0, "text": "won't I won't do that. Um but I can also step<00:06:41.240> into<00:06:41.480> it<00:06:41.600> using<00:06:41.960> either<00:06:42.160> step<00:06:42.400> over<00:06:42.600> step" }, { "start": 403.31, "duration": 0.0, "text": "step into it using either step over step" }, { "start": 403.32, "duration": 0.0, "text": "step into it using either step over step uh<00:06:43.440> into.<00:06:43.760> It<00:06:43.840> doesn't<00:06:44.120> matter<00:06:44.360> which" }, { "start": 404.55, "duration": 0.0, "text": "uh into. It doesn't matter which" }, { "start": 404.56, "duration": 0.0, "text": "uh into. It doesn't matter which command,<00:06:45.000> but<00:06:45.760> um" }, { "start": 406.909, "duration": 0.0, "text": "command, but um" }, { "start": 406.919, "duration": 0.0, "text": "command, but um so<00:06:47.000> I<00:06:47.040> can<00:06:47.160> run<00:06:47.360> either<00:06:47.560> one<00:06:47.680> of<00:06:47.760> these<00:06:47.919> to<00:06:48.000> get" }, { "start": 408.11, "duration": 0.0, "text": "so I can run either one of these to get" }, { "start": 408.12, "duration": 0.0, "text": "so I can run either one of these to get into<00:06:48.280> the<00:06:48.360> program.<00:06:48.960> Now,<00:06:49.720> another<00:06:50.080> thing<00:06:50.240> I" }, { "start": 410.27, "duration": 0.0, "text": "into the program. Now, another thing I" }, { "start": 410.28, "duration": 0.0, "text": "into the program. Now, another thing I should<00:06:50.440> mention<00:06:50.680> about<00:06:50.880> the<00:06:50.960> UI<00:06:51.320> before" }, { "start": 412.11, "duration": 0.0, "text": "should mention about the UI before" }, { "start": 412.12, "duration": 0.0, "text": "should mention about the UI before getting<00:06:52.360> into<00:06:52.480> the<00:06:52.600> actual<00:06:52.840> debugging," }, { "start": 414.71, "duration": 0.0, "text": "getting into the actual debugging," }, { "start": 414.72, "duration": 0.0, "text": "getting into the actual debugging, 100%<00:06:55.440> of<00:06:55.520> the<00:06:55.600> operations<00:06:56.160> I've<00:06:56.600> covered<00:06:56.919> so" }, { "start": 417.07, "duration": 0.0, "text": "100% of the operations I've covered so" }, { "start": 417.08, "duration": 0.0, "text": "100% of the operations I've covered so far<00:06:57.480> can<00:06:57.760> be<00:06:58.000> done<00:06:58.560> through<00:06:59.240> uh<00:06:59.680> generalized" }, { "start": 420.39, "duration": 0.0, "text": "far can be done through uh generalized" }, { "start": 420.4, "duration": 0.0, "text": "far can be done through uh generalized command<00:07:01.040> lister.<00:07:01.400> So,<00:07:01.600> basically,<00:07:02.120> if<00:07:02.240> you" }, { "start": 422.31, "duration": 0.0, "text": "command lister. So, basically, if you" }, { "start": 422.32, "duration": 0.0, "text": "command lister. So, basically, if you hit<00:07:02.560> the<00:07:02.680> help<00:07:03.440> menu<00:07:03.720> up<00:07:03.840> here,<00:07:04.520> it's<00:07:04.720> got<00:07:04.960> a" }, { "start": 425.07, "duration": 0.0, "text": "hit the help menu up here, it's got a" }, { "start": 425.08, "duration": 0.0, "text": "hit the help menu up here, it's got a search<00:07:05.320> for<00:07:05.440> commands<00:07:05.760> and<00:07:05.880> settings,<00:07:06.360> and" }, { "start": 426.47, "duration": 0.0, "text": "search for commands and settings, and" }, { "start": 426.48, "duration": 0.0, "text": "search for commands and settings, and you<00:07:06.560> can<00:07:06.640> see<00:07:06.800> you<00:07:06.919> can<00:07:07.160> you<00:07:07.280> can<00:07:08.000> trigger<00:07:08.240> this" }, { "start": 428.43, "duration": 0.0, "text": "you can see you can you can trigger this" }, { "start": 428.44, "duration": 0.0, "text": "you can see you can you can trigger this quickly<00:07:08.760> by<00:07:08.880> hitting<00:07:09.120> F1.<00:07:10.080> But<00:07:10.160> if<00:07:10.240> I<00:07:10.320> click" }, { "start": 430.51, "duration": 0.0, "text": "quickly by hitting F1. But if I click" }, { "start": 430.52, "duration": 0.0, "text": "quickly by hitting F1. But if I click that,<00:07:10.720> it<00:07:10.800> opens<00:07:11.160> up<00:07:11.480> this" }, { "start": 432.43, "duration": 0.0, "text": "that, it opens up this" }, { "start": 432.44, "duration": 0.0, "text": "that, it opens up this uh<00:07:12.880> lister<00:07:13.240> here,<00:07:13.520> and<00:07:13.600> this<00:07:13.720> shows<00:07:13.960> all<00:07:14.160> of" }, { "start": 434.23, "duration": 0.0, "text": "uh lister here, and this shows all of" }, { "start": 434.24, "duration": 0.0, "text": "uh lister here, and this shows all of the<00:07:14.360> commands<00:07:14.680> that<00:07:14.800> you<00:07:14.880> can<00:07:15.000> do<00:07:15.160> in<00:07:15.240> the" }, { "start": 435.31, "duration": 0.0, "text": "the commands that you can do in the" }, { "start": 435.32, "duration": 0.0, "text": "the commands that you can do in the debugger.<00:07:15.680> So,<00:07:15.800> I<00:07:15.840> can<00:07:16.000> say<00:07:16.200> like<00:07:17.040> a<00:07:17.200> launch" }, { "start": 437.67, "duration": 0.0, "text": "debugger. So, I can say like a launch" }, { "start": 437.68, "duration": 0.0, "text": "debugger. So, I can say like a launch and<00:07:17.919> step<00:07:18.200> into" }, { "start": 439.27, "duration": 0.0, "text": "and step into" }, { "start": 439.28, "duration": 0.0, "text": "and step into um<00:07:19.760> if<00:07:19.919> I<00:07:19.960> run<00:07:20.200> that,<00:07:20.560> it'll<00:07:20.720> ask<00:07:20.919> me<00:07:21.000> for<00:07:21.120> a" }, { "start": 441.19, "duration": 0.0, "text": "um if I run that, it'll ask me for a" }, { "start": 441.2, "duration": 0.0, "text": "um if I run that, it'll ask me for a target,<00:07:21.840> and<00:07:21.919> then<00:07:22.040> if<00:07:22.160> I<00:07:22.240> click<00:07:22.480> one," }, { "start": 443.39, "duration": 0.0, "text": "target, and then if I click one," }, { "start": 443.4, "duration": 0.0, "text": "target, and then if I click one, uh<00:07:23.480> it'll<00:07:24.360> step<00:07:24.680> into<00:07:24.919> that<00:07:25.280> target<00:07:25.600> that<00:07:25.720> I" }, { "start": 445.95, "duration": 0.0, "text": "uh it'll step into that target that I" }, { "start": 445.96, "duration": 0.0, "text": "uh it'll step into that target that I that<00:07:26.080> I<00:07:26.120> picked.<00:07:26.400> That's<00:07:27.080> uh<00:07:27.160> that's<00:07:27.760> a<00:07:27.840> slower" }, { "start": 448.27, "duration": 0.0, "text": "that I picked. That's uh that's a slower" }, { "start": 448.28, "duration": 0.0, "text": "that I picked. That's uh that's a slower path<00:07:28.600> for<00:07:28.760> just<00:07:28.960> like<00:07:29.160> if<00:07:29.320> I've<00:07:29.440> got<00:07:29.640> this" }, { "start": 449.79, "duration": 0.0, "text": "path for just like if I've got this" }, { "start": 449.8, "duration": 0.0, "text": "path for just like if I've got this target<00:07:30.120> selected,<00:07:30.880> and<00:07:30.960> if<00:07:31.080> I<00:07:31.120> hit<00:07:31.360> F10<00:07:32.000> or" }, { "start": 452.15, "duration": 0.0, "text": "target selected, and if I hit F10 or" }, { "start": 452.16, "duration": 0.0, "text": "target selected, and if I hit F10 or F11,<00:07:33.160> then<00:07:33.360> it'll<00:07:33.560> just<00:07:33.800> get<00:07:33.960> me<00:07:34.360> to<00:07:34.480> the<00:07:34.560> same" }, { "start": 454.75, "duration": 0.0, "text": "F11, then it'll just get me to the same" }, { "start": 454.76, "duration": 0.0, "text": "F11, then it'll just get me to the same spot.<00:07:34.960> So,<00:07:35.040> I've<00:07:35.160> stepped<00:07:35.520> into<00:07:35.760> the<00:07:35.840> program." }, { "start": 457.31, "duration": 0.0, "text": "spot. So, I've stepped into the program." }, { "start": 457.32, "duration": 0.0, "text": "spot. So, I've stepped into the program. Um<00:07:37.680> and<00:07:37.760> now<00:07:37.919> that<00:07:38.080> I'm<00:07:38.400> now<00:07:38.520> that<00:07:38.640> I'm<00:07:38.760> here," }, { "start": 459.67, "duration": 0.0, "text": "Um and now that I'm now that I'm here," }, { "start": 459.68, "duration": 0.0, "text": "Um and now that I'm now that I'm here, let<00:07:39.840> me<00:07:39.960> do" }, { "start": 461.23, "duration": 0.0, "text": "let me do" }, { "start": 461.24, "duration": 0.0, "text": "let me do um" }, { "start": 462.55, "duration": 0.0, "text": "um" }, { "start": 462.56, "duration": 0.0, "text": "um this<00:07:42.840> layout<00:07:43.120> here." }, { "start": 463.735, "duration": 0.0, "text": "this layout here." }, { "start": 463.745, "duration": 0.0, "text": "this layout here. >> [snorts]" }, { "start": 464.31, "duration": 0.0, "text": ">> [snorts]" }, { "start": 464.32, "duration": 0.0, "text": ">> [snorts] >> So,<00:07:44.840> uh<00:07:44.920> um" }, { "start": 466.91, "duration": 0.0, "text": ">> So, uh um" }, { "start": 466.92, "duration": 0.0, "text": ">> So, uh um So,<00:07:47.040> yeah,<00:07:47.200> I've<00:07:47.320> got<00:07:47.480> my<00:07:47.600> watch<00:07:47.800> window<00:07:48.120> and" }, { "start": 468.27, "duration": 0.0, "text": "So, yeah, I've got my watch window and" }, { "start": 468.28, "duration": 0.0, "text": "So, yeah, I've got my watch window and I've<00:07:48.400> got<00:07:48.680> my<00:07:49.080> source<00:07:49.400> view.<00:07:49.600> In<00:07:49.680> the<00:07:49.760> source" }, { "start": 469.99, "duration": 0.0, "text": "I've got my source view. In the source" }, { "start": 470.0, "duration": 0.0, "text": "I've got my source view. In the source view,<00:07:50.200> obviously,<00:07:50.520> I<00:07:50.560> can<00:07:50.720> see<00:07:50.920> where<00:07:51.200> my" }, { "start": 471.35, "duration": 0.0, "text": "view, obviously, I can see where my" }, { "start": 471.36, "duration": 0.0, "text": "view, obviously, I can see where my thread<00:07:51.680> happens<00:07:52.000> to<00:07:52.080> be." }, { "start": 472.91, "duration": 0.0, "text": "thread happens to be." }, { "start": 472.92, "duration": 0.0, "text": "thread happens to be. Um" }, { "start": 473.95, "duration": 0.0, "text": "Um" }, { "start": 473.96, "duration": 0.0, "text": "Um with<00:07:54.320> the<00:07:54.400> step<00:07:54.640> over<00:07:54.840> step<00:07:55.080> into<00:07:55.280> commands" }, { "start": 475.87, "duration": 0.0, "text": "with the step over step into commands" }, { "start": 475.88, "duration": 0.0, "text": "with the step over step into commands and<00:07:56.000> step<00:07:56.280> out,<00:07:56.600> these<00:07:56.840> are<00:07:56.960> three<00:07:57.560> super" }, { "start": 477.83, "duration": 0.0, "text": "and step out, these are three super" }, { "start": 477.84, "duration": 0.0, "text": "and step out, these are three super common<00:07:58.080> debugger<00:07:58.400> commands.<00:07:58.720> Step<00:07:58.920> over" }, { "start": 479.07, "duration": 0.0, "text": "common debugger commands. Step over" }, { "start": 479.08, "duration": 0.0, "text": "common debugger commands. Step over means<00:07:59.320> stepping<00:07:59.680> over<00:07:59.920> a<00:07:59.960> line<00:08:00.160> of<00:08:00.240> source" }, { "start": 480.47, "duration": 0.0, "text": "means stepping over a line of source" }, { "start": 480.48, "duration": 0.0, "text": "means stepping over a line of source code<00:08:00.760> even<00:08:00.960> if<00:08:01.080> that" }, { "start": 482.07, "duration": 0.0, "text": "code even if that" }, { "start": 482.08, "duration": 0.0, "text": "code even if that code<00:08:02.400> were<00:08:02.520> to<00:08:02.640> call<00:08:03.000> into<00:08:03.240> a<00:08:03.280> function," }, { "start": 484.47, "duration": 0.0, "text": "code were to call into a function," }, { "start": 484.48, "duration": 0.0, "text": "code were to call into a function, um<00:08:04.720> it<00:08:04.840> steps<00:08:05.120> over<00:08:05.360> it.<00:08:05.640> But,<00:08:05.760> if<00:08:05.840> I<00:08:05.920> want<00:08:06.080> to" }, { "start": 486.19, "duration": 0.0, "text": "um it steps over it. But, if I want to" }, { "start": 486.2, "duration": 0.0, "text": "um it steps over it. But, if I want to step<00:08:06.480> into<00:08:06.720> a<00:08:06.800> function<00:08:07.160> call,<00:08:07.440> I<00:08:07.480> hit<00:08:07.680> F11<00:08:08.240> or" }, { "start": 488.95, "duration": 0.0, "text": "step into a function call, I hit F11 or" }, { "start": 488.96, "duration": 0.0, "text": "step into a function call, I hit F11 or uh<00:08:09.040> run<00:08:09.560> otherwise<00:08:10.000> just<00:08:10.160> run<00:08:10.280> the<00:08:10.360> step<00:08:10.560> into" }, { "start": 490.75, "duration": 0.0, "text": "uh run otherwise just run the step into" }, { "start": 490.76, "duration": 0.0, "text": "uh run otherwise just run the step into command." }, { "start": 491.99, "duration": 0.0, "text": "command." }, { "start": 492.0, "duration": 0.0, "text": "command. Um<00:08:12.400> and<00:08:12.520> then<00:08:12.640> it'll<00:08:13.200> it'll<00:08:13.400> jump<00:08:13.680> into<00:08:13.880> a" }, { "start": 493.909, "duration": 0.0, "text": "Um and then it'll it'll jump into a" }, { "start": 493.919, "duration": 0.0, "text": "Um and then it'll it'll jump into a function<00:08:14.240> call<00:08:14.400> that<00:08:14.560> way.<00:08:15.360> Um<00:08:15.720> if<00:08:15.880> I<00:08:15.919> want<00:08:16.200> to" }, { "start": 496.51, "duration": 0.0, "text": "function call that way. Um if I want to" }, { "start": 496.52, "duration": 0.0, "text": "function call that way. Um if I want to get<00:08:16.720> out<00:08:16.840> of<00:08:16.919> a<00:08:16.960> function<00:08:17.280> call,<00:08:17.440> I<00:08:17.480> have<00:08:17.600> to" }, { "start": 497.67, "duration": 0.0, "text": "get out of a function call, I have to" }, { "start": 497.68, "duration": 0.0, "text": "get out of a function call, I have to run<00:08:17.840> step<00:08:18.160> out,<00:08:18.640> which<00:08:18.800> is<00:08:18.919> shift<00:08:19.200> F11." }, { "start": 500.909, "duration": 0.0, "text": "run step out, which is shift F11." }, { "start": 500.919, "duration": 0.0, "text": "run step out, which is shift F11. That'll<00:08:21.120> pop<00:08:21.320> me<00:08:21.400> back.<00:08:21.919> It<00:08:21.960> basically<00:08:22.240> runs" }, { "start": 502.43, "duration": 0.0, "text": "That'll pop me back. It basically runs" }, { "start": 502.44, "duration": 0.0, "text": "That'll pop me back. It basically runs to<00:08:22.520> the<00:08:22.600> end<00:08:22.680> of<00:08:22.760> the<00:08:22.800> function<00:08:23.200> until<00:08:23.440> the" }, { "start": 503.51, "duration": 0.0, "text": "to the end of the function until the" }, { "start": 503.52, "duration": 0.0, "text": "to the end of the function until the function<00:08:23.840> exits<00:08:24.200> and<00:08:24.280> then<00:08:24.440> it<00:08:24.560> and<00:08:24.680> then<00:08:24.760> it" }, { "start": 505.23, "duration": 0.0, "text": "function exits and then it and then it" }, { "start": 505.24, "duration": 0.0, "text": "function exits and then it and then it pops<00:08:25.520> out<00:08:25.640> and<00:08:26.000> and<00:08:26.160> ends<00:08:26.760> wherever<00:08:27.520> wherever" }, { "start": 507.75, "duration": 0.0, "text": "pops out and and ends wherever wherever" }, { "start": 507.76, "duration": 0.0, "text": "pops out and and ends wherever wherever the<00:08:27.840> return<00:08:28.120> point<00:08:28.360> is." }, { "start": 509.63, "duration": 0.0, "text": "the return point is." }, { "start": 509.64, "duration": 0.0, "text": "the return point is. Um" }, { "start": 510.71, "duration": 0.0, "text": "Um" }, { "start": 510.72, "duration": 0.0, "text": "Um so,<00:08:30.840> I<00:08:30.880> can<00:08:30.905> [clears throat]<00:08:31.000> click<00:08:31.160> and<00:08:31.240> drag" }, { "start": 511.51, "duration": 0.0, "text": "so, I can [clears throat] click and drag" }, { "start": 511.52, "duration": 0.0, "text": "so, I can [clears throat] click and drag a<00:08:31.560> thread<00:08:31.800> as<00:08:31.919> well.<00:08:32.080> I<00:08:32.159> just<00:08:32.320> did<00:08:32.479> that.<00:08:32.800> So," }, { "start": 513.07, "duration": 0.0, "text": "a thread as well. I just did that. So," }, { "start": 513.08, "duration": 0.0, "text": "a thread as well. I just did that. So, if<00:08:33.200> I<00:08:33.280> want<00:08:33.400> to<00:08:33.479> reposition<00:08:34.000> a<00:08:34.039> thread,<00:08:34.400> this" }, { "start": 514.55, "duration": 0.0, "text": "if I want to reposition a thread, this" }, { "start": 514.56, "duration": 0.0, "text": "if I want to reposition a thread, this doesn't<00:08:34.919> do<00:08:35.080> any<00:08:35.280> timeline<00:08:35.680> debugging<00:08:36.000> stuff" }, { "start": 516.23, "duration": 0.0, "text": "doesn't do any timeline debugging stuff" }, { "start": 516.24, "duration": 0.0, "text": "doesn't do any timeline debugging stuff right<00:08:36.400> now.<00:08:36.599> So,<00:08:37.479> um<00:08:38.240> or<00:08:38.440> well,<00:08:38.599> this<00:08:38.760> feature" }, { "start": 519.07, "duration": 0.0, "text": "right now. So, um or well, this feature" }, { "start": 519.08, "duration": 0.0, "text": "right now. So, um or well, this feature would<00:08:39.200> never<00:08:39.400> do<00:08:39.520> that." }, { "start": 519.99, "duration": 0.0, "text": "would never do that." }, { "start": 520.0, "duration": 0.0, "text": "would never do that. >> Wait,<00:08:40.159> wait,<00:08:40.280> wait,<00:08:40.400> wait,<00:08:40.520> wait.<00:08:40.800> What<00:08:41.320> Wait," }, { "start": 521.51, "duration": 0.0, "text": ">> Wait, wait, wait, wait, wait. What Wait," }, { "start": 521.52, "duration": 0.0, "text": ">> Wait, wait, wait, wait, wait. What Wait, what<00:08:41.719> you<00:08:41.840> can<00:08:42.039> do?<00:08:42.400> What<00:08:42.760> would<00:08:43.039> you<00:08:43.120> can<00:08:43.599> you" }, { "start": 523.67, "duration": 0.0, "text": "what you can do? What would you can you" }, { "start": 523.68, "duration": 0.0, "text": "what you can do? What would you can you can<00:08:43.880> drag<00:08:44.280> a<00:08:44.360> thread?" }, { "start": 526.19, "duration": 0.0, "text": "can drag a thread?" }, { "start": 526.2, "duration": 0.0, "text": "can drag a thread? >> Oh,<00:08:46.440> yeah.<00:08:46.680> So,<00:08:46.839> here<00:08:47.000> So,<00:08:47.120> here<00:08:47.600> here's<00:08:47.880> the" }, { "start": 527.95, "duration": 0.0, "text": ">> Oh, yeah. So, here So, here here's the" }, { "start": 527.96, "duration": 0.0, "text": ">> Oh, yeah. So, here So, here here's the position<00:08:48.320> of<00:08:48.440> my<00:08:48.600> main<00:08:48.880> thread.<00:08:49.160> You<00:08:49.240> can<00:08:49.360> see" }, { "start": 529.47, "duration": 0.0, "text": "position of my main thread. You can see" }, { "start": 529.48, "duration": 0.0, "text": "position of my main thread. You can see it's<00:08:49.880> it's<00:08:50.000> got<00:08:50.160> the<00:08:50.240> name<00:08:50.640> mule<00:08:50.920> main<00:08:51.160> thread." }, { "start": 531.67, "duration": 0.0, "text": "it's it's got the name mule main thread." }, { "start": 531.68, "duration": 0.0, "text": "it's it's got the name mule main thread. And<00:08:51.760> this<00:08:51.880> is<00:08:52.000> its<00:08:52.120> call<00:08:52.360> stack,<00:08:52.640> too,<00:08:52.800> when<00:08:52.920> I" }, { "start": 532.95, "duration": 0.0, "text": "And this is its call stack, too, when I" }, { "start": 532.96, "duration": 0.0, "text": "And this is its call stack, too, when I hover<00:08:53.240> it.<00:08:53.400> So,<00:08:53.520> you<00:08:53.600> can<00:08:53.720> see<00:08:54.560> mule<00:08:54.839> main,<00:08:55.440> win" }, { "start": 535.67, "duration": 0.0, "text": "hover it. So, you can see mule main, win" }, { "start": 535.68, "duration": 0.0, "text": "hover it. So, you can see mule main, win main,<00:08:56.480> um" }, { "start": 536.91, "duration": 0.0, "text": "main, um" }, { "start": 536.92, "duration": 0.0, "text": "main, um >> Yeah." }, { "start": 537.47, "duration": 0.0, "text": ">> Yeah." }, { "start": 537.48, "duration": 0.0, "text": ">> Yeah. >> Basically,<00:08:57.960> there's<00:08:58.120> the<00:08:58.200> full<00:08:58.360> call<00:08:58.520> stack." }, { "start": 538.67, "duration": 0.0, "text": ">> Basically, there's the full call stack." }, { "start": 538.68, "duration": 0.0, "text": ">> Basically, there's the full call stack. So,<00:08:58.720> you<00:08:58.800> have<00:08:58.880> a<00:08:58.920> couple<00:08:59.120> things<00:08:59.360> in<00:08:59.600> in<00:08:59.760> like" }, { "start": 539.99, "duration": 0.0, "text": "So, you have a couple things in in like" }, { "start": 540.0, "duration": 0.0, "text": "So, you have a couple things in in like the<00:09:00.440> from<00:09:01.000> the<00:09:01.120> kernel,<00:09:01.760> um<00:09:02.200> not<00:09:02.400> literally" }, { "start": 542.71, "duration": 0.0, "text": "the from the kernel, um not literally" }, { "start": 542.72, "duration": 0.0, "text": "the from the kernel, um not literally the<00:09:02.800> kernel,<00:09:03.040> but<00:09:03.520> the<00:09:03.640> user<00:09:03.880> space<00:09:04.120> of<00:09:04.200> the" }, { "start": 544.27, "duration": 0.0, "text": "the kernel, but the user space of the" }, { "start": 544.28, "duration": 0.0, "text": "the kernel, but the user space of the kernel.<00:09:05.200> And<00:09:05.280> then<00:09:05.440> you<00:09:05.520> have<00:09:05.800> s<00:09:06.000> e<00:09:06.080> r<00:09:06.160> t<00:09:06.360> common" }, { "start": 546.71, "duration": 0.0, "text": "kernel. And then you have s e r t common" }, { "start": 546.72, "duration": 0.0, "text": "kernel. And then you have s e r t common main,<00:09:07.360> s<00:09:07.560> e<00:09:07.839> a<00:09:08.400> s<00:09:08.640> e<00:09:08.839> h,<00:09:09.200> and<00:09:09.320> then<00:09:09.480> invoke<00:09:09.920> main," }, { "start": 550.11, "duration": 0.0, "text": "main, s e a s e h, and then invoke main," }, { "start": 550.12, "duration": 0.0, "text": "main, s e a s e h, and then invoke main, which<00:09:10.280> is<00:09:10.400> an<00:09:10.520> inline<00:09:11.000> function.<00:09:11.600> And<00:09:11.680> then" }, { "start": 551.99, "duration": 0.0, "text": "which is an inline function. And then" }, { "start": 552.0, "duration": 0.0, "text": "which is an inline function. And then you<00:09:12.120> have<00:09:12.280> win<00:09:12.480> main,<00:09:12.720> which<00:09:12.839> is<00:09:12.960> actually<00:09:13.240> in" }, { "start": 553.31, "duration": 0.0, "text": "you have win main, which is actually in" }, { "start": 553.32, "duration": 0.0, "text": "you have win main, which is actually in this<00:09:13.440> program.<00:09:13.760> And<00:09:13.839> then<00:09:13.960> you<00:09:14.000> have<00:09:14.160> mule" }, { "start": 554.43, "duration": 0.0, "text": "this program. And then you have mule" }, { "start": 554.44, "duration": 0.0, "text": "this program. And then you have mule main,<00:09:15.240> which<00:09:15.440> is<00:09:15.520> just<00:09:15.760> this<00:09:15.920> function<00:09:16.240> right" }, { "start": 556.35, "duration": 0.0, "text": "main, which is just this function right" }, { "start": 556.36, "duration": 0.0, "text": "main, which is just this function right here." }, { "start": 557.15, "duration": 0.0, "text": "here." }, { "start": 557.16, "duration": 0.0, "text": "here. So,<00:09:17.240> that's<00:09:17.440> the<00:09:17.520> call<00:09:17.720> stack.<00:09:17.960> This<00:09:18.120> is<00:09:18.200> the" }, { "start": 558.31, "duration": 0.0, "text": "So, that's the call stack. This is the" }, { "start": 558.32, "duration": 0.0, "text": "So, that's the call stack. This is the thread.<00:09:18.760> And<00:09:18.880> if<00:09:19.000> I<00:09:19.040> want<00:09:19.280> to<00:09:19.440> reposition<00:09:20.480> the" }, { "start": 560.63, "duration": 0.0, "text": "thread. And if I want to reposition the" }, { "start": 560.64, "duration": 0.0, "text": "thread. And if I want to reposition the instruction<00:09:21.080> pointer<00:09:21.360> of<00:09:21.440> the<00:09:21.520> thread,<00:09:22.160> cuz" }, { "start": 562.31, "duration": 0.0, "text": "instruction pointer of the thread, cuz" }, { "start": 562.32, "duration": 0.0, "text": "instruction pointer of the thread, cuz this<00:09:22.680> arrow<00:09:23.000> is<00:09:23.080> showing<00:09:23.520> what<00:09:23.680> instruction" }, { "start": 564.11, "duration": 0.0, "text": "this arrow is showing what instruction" }, { "start": 564.12, "duration": 0.0, "text": "this arrow is showing what instruction is<00:09:24.200> going<00:09:24.320> to<00:09:24.400> execute<00:09:24.760> next,<00:09:25.080> right?<00:09:25.560> Or<00:09:25.680> what" }, { "start": 565.87, "duration": 0.0, "text": "is going to execute next, right? Or what" }, { "start": 565.88, "duration": 0.0, "text": "is going to execute next, right? Or what code<00:09:26.080> is<00:09:26.160> going<00:09:26.280> to<00:09:26.360> execute<00:09:26.720> next.<00:09:27.440> If<00:09:27.560> I" }, { "start": 567.63, "duration": 0.0, "text": "code is going to execute next. If I" }, { "start": 567.64, "duration": 0.0, "text": "code is going to execute next. If I wanted<00:09:27.880> to<00:09:27.960> change<00:09:28.280> that,<00:09:28.560> I<00:09:28.720> just<00:09:29.200> I<00:09:29.280> can" }, { "start": 569.43, "duration": 0.0, "text": "wanted to change that, I just I can" }, { "start": 569.44, "duration": 0.0, "text": "wanted to change that, I just I can click<00:09:29.640> and<00:09:29.720> drag<00:09:30.040> the<00:09:30.120> thread." }, { "start": 571.35, "duration": 0.0, "text": "click and drag the thread." }, { "start": 571.36, "duration": 0.0, "text": "click and drag the thread. But,<00:09:31.480> then<00:09:31.640> you<00:09:31.720> will" }, { "start": 571.95, "duration": 0.0, "text": "But, then you will" }, { "start": 571.96, "duration": 0.0, "text": "But, then you will >> say,<00:09:32.160> \"Hey,<00:09:32.360> I<00:09:32.440> actually<00:09:32.880> skip<00:09:33.360> the<00:09:33.720> the<00:09:33.800> ones" }, { "start": 574.03, "duration": 0.0, "text": ">> say, \"Hey, I actually skip the the ones" }, { "start": 574.04, "duration": 0.0, "text": ">> say, \"Hey, I actually skip the the ones in<00:09:34.160> between?\"" }, { "start": 575.75, "duration": 0.0, "text": "in between?\"" }, { "start": 575.76, "duration": 0.0, "text": "in between?\" No,<00:09:35.960> so<00:09:36.120> it<00:09:36.160> just<00:09:36.440> changes<00:09:36.800> the<00:09:36.920> position<00:09:37.360> of" }, { "start": 577.43, "duration": 0.0, "text": "No, so it just changes the position of" }, { "start": 577.44, "duration": 0.0, "text": "No, so it just changes the position of the<00:09:37.560> thread's<00:09:37.960> instruction<00:09:38.440> pointer.<00:09:38.840> So,<00:09:39.480> um" }, { "start": 579.79, "duration": 0.0, "text": "the thread's instruction pointer. So, um" }, { "start": 579.8, "duration": 0.0, "text": "the thread's instruction pointer. So, um all<00:09:40.000> the<00:09:40.440> like<00:09:40.640> it's<00:09:40.760> not<00:09:40.920> changing<00:09:41.200> any" }, { "start": 581.35, "duration": 0.0, "text": "all the like it's not changing any" }, { "start": 581.36, "duration": 0.0, "text": "all the like it's not changing any memory<00:09:41.880> or<00:09:42.040> anything.<00:09:42.320> It's<00:09:42.760> only<00:09:43.040> changing" }, { "start": 583.35, "duration": 0.0, "text": "memory or anything. It's only changing" }, { "start": 583.36, "duration": 0.0, "text": "memory or anything. It's only changing the<00:09:43.440> instruction<00:09:43.840> pointer<00:09:44.080> register," }, { "start": 584.75, "duration": 0.0, "text": "the instruction pointer register," }, { "start": 584.76, "duration": 0.0, "text": "the instruction pointer register, actually,<00:09:45.680> of<00:09:45.800> the<00:09:45.880> thread." }, { "start": 586.95, "duration": 0.0, "text": "actually, of the thread." }, { "start": 586.96, "duration": 0.0, "text": "actually, of the thread. Um<00:09:47.160> so,<00:09:47.280> you<00:09:47.360> can<00:09:47.520> rerun<00:09:47.920> code<00:09:48.480> this<00:09:48.720> way.<00:09:49.320> Um" }, { "start": 590.47, "duration": 0.0, "text": "Um so, you can rerun code this way. Um" }, { "start": 590.48, "duration": 0.0, "text": "Um so, you can rerun code this way. Um if<00:09:50.680> you<00:09:50.800> have<00:09:51.000> pretty<00:09:51.200> deterministic<00:09:51.800> code," }, { "start": 592.11, "duration": 0.0, "text": "if you have pretty deterministic code," }, { "start": 592.12, "duration": 0.0, "text": "if you have pretty deterministic code, this<00:09:52.280> actually<00:09:52.560> gets<00:09:52.800> you<00:09:52.960> like,<00:09:53.720> you<00:09:53.800> know," }, { "start": 593.91, "duration": 0.0, "text": "this actually gets you like, you know," }, { "start": 593.92, "duration": 0.0, "text": "this actually gets you like, you know, pretty<00:09:54.200> close<00:09:54.560> to<00:09:54.720> the<00:09:54.920> full,<00:09:55.800> uh" }, { "start": 596.39, "duration": 0.0, "text": "pretty close to the full, uh" }, { "start": 596.4, "duration": 0.0, "text": "pretty close to the full, uh like<00:09:56.560> this<00:09:56.760> is<00:09:57.040> a<00:09:57.120> lot<00:09:57.440> like<00:09:57.680> timeline" }, { "start": 597.99, "duration": 0.0, "text": "like this is a lot like timeline" }, { "start": 598.0, "duration": 0.0, "text": "like this is a lot like timeline debugging<00:09:58.560> if<00:09:58.840> you<00:09:59.320> have<00:09:59.600> pretty" }, { "start": 599.83, "duration": 0.0, "text": "debugging if you have pretty" }, { "start": 599.84, "duration": 0.0, "text": "debugging if you have pretty deterministic<00:10:00.480> code,<00:10:01.280> where<00:10:01.440> time<00:10:01.760> travel<00:10:02.120> or" }, { "start": 602.43, "duration": 0.0, "text": "deterministic code, where time travel or" }, { "start": 602.44, "duration": 0.0, "text": "deterministic code, where time travel or I<00:10:02.480> shouldn't<00:10:02.680> say<00:10:02.760> timeline<00:10:03.120> debugging.<00:10:03.400> I" }, { "start": 603.43, "duration": 0.0, "text": "I shouldn't say timeline debugging. I" }, { "start": 603.44, "duration": 0.0, "text": "I shouldn't say timeline debugging. I should<00:10:03.600> say<00:10:03.720> time<00:10:04.120> travel<00:10:04.440> debugging." }, { "start": 605.47, "duration": 0.0, "text": "should say time travel debugging." }, { "start": 605.48, "duration": 0.0, "text": "should say time travel debugging. Um<00:10:06.240> which<00:10:06.400> are<00:10:06.520> different<00:10:06.840> things,<00:10:07.120> but" }, { "start": 608.35, "duration": 0.0, "text": "Um which are different things, but" }, { "start": 608.36, "duration": 0.0, "text": "Um which are different things, but So,<00:10:08.720> time<00:10:09.040> travel<00:10:09.280> debugging<00:10:09.600> people<00:10:10.040> will" }, { "start": 610.11, "duration": 0.0, "text": "So, time travel debugging people will" }, { "start": 610.12, "duration": 0.0, "text": "So, time travel debugging people will often<00:10:10.360> think<00:10:10.520> of<00:10:10.720> features<00:10:11.040> like<00:10:11.160> step" }, { "start": 611.47, "duration": 0.0, "text": "often think of features like step" }, { "start": 611.48, "duration": 0.0, "text": "often think of features like step backwards,<00:10:12.080> for<00:10:12.200> example.<00:10:12.640> Like,<00:10:13.120> you<00:10:13.200> know," }, { "start": 613.27, "duration": 0.0, "text": "backwards, for example. Like, you know," }, { "start": 613.28, "duration": 0.0, "text": "backwards, for example. Like, you know, if<00:10:13.400> you<00:10:13.480> step<00:10:13.720> forward,<00:10:14.640> you<00:10:14.720> might<00:10:14.840> also<00:10:15.040> want" }, { "start": 615.19, "duration": 0.0, "text": "if you step forward, you might also want" }, { "start": 615.2, "duration": 0.0, "text": "if you step forward, you might also want to<00:10:15.280> say<00:10:15.440> like,<00:10:15.640> \"Hey,<00:10:16.160> like<00:10:16.320> I<00:10:16.360> want<00:10:16.520> to<00:10:16.560> go" }, { "start": 616.71, "duration": 0.0, "text": "to say like, \"Hey, like I want to go" }, { "start": 616.72, "duration": 0.0, "text": "to say like, \"Hey, like I want to go back<00:10:17.040> to<00:10:17.120> this<00:10:17.560> to<00:10:17.680> the<00:10:17.760> point<00:10:18.000> in<00:10:18.080> time<00:10:18.480> in" }, { "start": 618.63, "duration": 0.0, "text": "back to this to the point in time in" }, { "start": 618.64, "duration": 0.0, "text": "back to this to the point in time in history<00:10:19.720> where<00:10:19.920> my<00:10:20.040> thread<00:10:20.320> was<00:10:20.440> here.\"<00:10:21.440> Um" }, { "start": 622.47, "duration": 0.0, "text": "history where my thread was here.\" Um" }, { "start": 622.48, "duration": 0.0, "text": "history where my thread was here.\" Um that<00:10:22.800> that<00:10:23.440> feature's<00:10:23.920> pretty<00:10:24.360> complicated" }, { "start": 624.83, "duration": 0.0, "text": "that that feature's pretty complicated" }, { "start": 624.84, "duration": 0.0, "text": "that that feature's pretty complicated and<00:10:24.920> not<00:10:25.160> supported<00:10:25.560> by<00:10:25.640> the<00:10:25.720> debugger<00:10:25.960> right" }, { "start": 626.11, "duration": 0.0, "text": "and not supported by the debugger right" }, { "start": 626.12, "duration": 0.0, "text": "and not supported by the debugger right now.<00:10:26.280> But,<00:10:26.440> you<00:10:26.520> can<00:10:26.640> rerun<00:10:27.040> code<00:10:27.240> by" }, { "start": 627.35, "duration": 0.0, "text": "now. But, you can rerun code by" }, { "start": 627.36, "duration": 0.0, "text": "now. But, you can rerun code by repositioning<00:10:27.960> your<00:10:28.080> thread.<00:10:28.440> Anyways," }, { "start": 628.75, "duration": 0.0, "text": "repositioning your thread. Anyways," }, { "start": 628.76, "duration": 0.0, "text": "repositioning your thread. Anyways, that's<00:10:28.880> kind<00:10:29.040> of<00:10:29.120> a<00:10:29.160> tangent.<00:10:29.960> We're<00:10:30.080> still" }, { "start": 630.27, "duration": 0.0, "text": "that's kind of a tangent. We're still" }, { "start": 630.28, "duration": 0.0, "text": "that's kind of a tangent. We're still not<00:10:30.560> We're<00:10:30.680> still<00:10:30.800> doing<00:10:31.080> basic<00:10:31.400> usage<00:10:31.720> stuff." }, { "start": 631.95, "duration": 0.0, "text": "not We're still doing basic usage stuff." }, { "start": 631.96, "duration": 0.0, "text": "not We're still doing basic usage stuff. So,<00:10:32.080> I<00:10:32.120> should<00:10:32.560> I<00:10:32.600> should<00:10:33.080> maybe<00:10:33.360> hold<00:10:33.600> off<00:10:33.760> on" }, { "start": 633.87, "duration": 0.0, "text": "So, I should I should maybe hold off on" }, { "start": 633.88, "duration": 0.0, "text": "So, I should I should maybe hold off on this<00:10:34.000> stuff,<00:10:34.200> but<00:10:34.760> Anyways,<00:10:35.120> so<00:10:35.200> I<00:10:35.240> can<00:10:35.400> step" }, { "start": 635.59, "duration": 0.0, "text": "this stuff, but Anyways, so I can step" }, { "start": 635.6, "duration": 0.0, "text": "this stuff, but Anyways, so I can step through<00:10:36.440> and<00:10:36.880> if<00:10:37.000> I<00:10:37.080> have<00:10:37.200> like<00:10:37.320> a<00:10:37.400> variable" }, { "start": 638.11, "duration": 0.0, "text": "through and if I have like a variable" }, { "start": 638.12, "duration": 0.0, "text": "through and if I have like a variable that's<00:10:38.400> in<00:10:38.560> my<00:10:38.680> code<00:10:39.160> and<00:10:39.280> I<00:10:39.320> want<00:10:39.480> to<00:10:39.560> see<00:10:39.800> what" }, { "start": 639.91, "duration": 0.0, "text": "that's in my code and I want to see what" }, { "start": 639.92, "duration": 0.0, "text": "that's in my code and I want to see what the<00:10:40.000> value<00:10:40.400> is,<00:10:40.600> I<00:10:40.680> can<00:10:40.839> just<00:10:41.040> hover<00:10:41.720> the<00:10:41.839> name" }, { "start": 641.99, "duration": 0.0, "text": "the value is, I can just hover the name" }, { "start": 642.0, "duration": 0.0, "text": "the value is, I can just hover the name of<00:10:42.040> that<00:10:42.160> variable<00:10:42.520> in<00:10:42.640> the<00:10:42.720> code.<00:10:43.680> Um" }, { "start": 644.11, "duration": 0.0, "text": "of that variable in the code. Um" }, { "start": 644.12, "duration": 0.0, "text": "of that variable in the code. Um actually,<00:10:44.360> let<00:10:44.480> me<00:10:45.000> um" }, { "start": 646.39, "duration": 0.0, "text": "actually, let me um" }, { "start": 646.4, "duration": 0.0, "text": "actually, let me um All<00:10:46.600> this<00:10:46.760> stuff<00:10:47.120> because<00:10:47.440> I<00:10:47.560> ran<00:10:47.800> this" }, { "start": 647.91, "duration": 0.0, "text": "All this stuff because I ran this" }, { "start": 647.92, "duration": 0.0, "text": "All this stuff because I ran this function<00:10:48.240> once<00:10:48.480> already,<00:10:48.800> all<00:10:48.960> this<00:10:49.280> all" }, { "start": 649.39, "duration": 0.0, "text": "function once already, all this all" }, { "start": 649.4, "duration": 0.0, "text": "function once already, all this all these<00:10:49.520> variables<00:10:49.920> are<00:10:49.960> going<00:10:50.200> to<00:10:50.280> be" }, { "start": 650.43, "duration": 0.0, "text": "these variables are going to be" }, { "start": 650.44, "duration": 0.0, "text": "these variables are going to be initialized<00:10:51.040> because<00:10:51.680> the<00:10:51.760> function<00:10:52.080> will" }, { "start": 652.19, "duration": 0.0, "text": "initialized because the function will" }, { "start": 652.2, "duration": 0.0, "text": "initialized because the function will have<00:10:52.360> run.<00:10:52.600> So,<00:10:52.720> what<00:10:52.839> I'll<00:10:52.960> do<00:10:53.680> is<00:10:53.800> I'm<00:10:53.880> going" }, { "start": 653.99, "duration": 0.0, "text": "have run. So, what I'll do is I'm going" }, { "start": 654.0, "duration": 0.0, "text": "have run. So, what I'll do is I'm going to<00:10:54.520> I'm<00:10:54.640> going<00:10:54.760> to<00:10:54.839> restart<00:10:55.200> the<00:10:55.280> program.<00:10:55.880> I'm" }, { "start": 655.99, "duration": 0.0, "text": "to I'm going to restart the program. I'm" }, { "start": 656.0, "duration": 0.0, "text": "to I'm going to restart the program. I'm going<00:10:56.120> to<00:10:56.160> put<00:10:56.320> a<00:10:56.360> breakpoint<00:10:56.920> right<00:10:57.080> here." }, { "start": 657.27, "duration": 0.0, "text": "going to put a breakpoint right here." }, { "start": 657.28, "duration": 0.0, "text": "going to put a breakpoint right here. So,<00:10:57.440> a<00:10:57.480> breakpoint<00:10:57.920> is<00:10:58.040> basically<00:10:58.360> saying<00:10:58.680> any" }, { "start": 658.87, "duration": 0.0, "text": "So, a breakpoint is basically saying any" }, { "start": 658.88, "duration": 0.0, "text": "So, a breakpoint is basically saying any thread<00:10:59.200> that<00:10:59.360> hits<00:10:59.600> this<00:10:59.800> spot<00:11:00.160> in<00:11:00.240> the<00:11:00.320> code," }, { "start": 661.59, "duration": 0.0, "text": "thread that hits this spot in the code," }, { "start": 661.6, "duration": 0.0, "text": "thread that hits this spot in the code, let's<00:11:01.760> just<00:11:01.920> stop<00:11:02.120> the<00:11:02.200> program,<00:11:02.640> right?" }, { "start": 663.87, "duration": 0.0, "text": "let's just stop the program, right?" }, { "start": 663.88, "duration": 0.0, "text": "let's just stop the program, right? And<00:11:04.480> uh<00:11:04.600> so,<00:11:05.200> the<00:11:05.280> debugger<00:11:05.600> will<00:11:05.760> pause<00:11:06.320> the" }, { "start": 666.43, "duration": 0.0, "text": "And uh so, the debugger will pause the" }, { "start": 666.44, "duration": 0.0, "text": "And uh so, the debugger will pause the entire<00:11:06.800> program<00:11:07.280> when<00:11:07.520> one<00:11:07.720> thread<00:11:07.960> hits<00:11:08.200> this" }, { "start": 668.35, "duration": 0.0, "text": "entire program when one thread hits this" }, { "start": 668.36, "duration": 0.0, "text": "entire program when one thread hits this position.<00:11:09.120> Now,<00:11:09.200> I'm<00:11:09.320> going<00:11:09.440> to<00:11:09.520> kill<00:11:09.800> the" }, { "start": 669.87, "duration": 0.0, "text": "position. Now, I'm going to kill the" }, { "start": 669.88, "duration": 0.0, "text": "position. Now, I'm going to kill the program<00:11:10.920> by<00:11:11.040> hitting<00:11:11.320> the<00:11:11.760> the<00:11:11.839> kill<00:11:12.120> all" }, { "start": 672.75, "duration": 0.0, "text": "program by hitting the the kill all" }, { "start": 672.76, "duration": 0.0, "text": "program by hitting the the kill all thing<00:11:13.000> up<00:11:13.120> here." }, { "start": 674.03, "duration": 0.0, "text": "thing up here." }, { "start": 674.04, "duration": 0.0, "text": "thing up here. Um<00:11:14.560> and<00:11:14.680> then<00:11:14.760> I'm<00:11:14.839> going<00:11:14.960> to<00:11:15.000> just<00:11:15.200> run<00:11:15.360> again." }, { "start": 676.15, "duration": 0.0, "text": "Um and then I'm going to just run again." }, { "start": 676.16, "duration": 0.0, "text": "Um and then I'm going to just run again. I<00:11:16.240> could<00:11:16.360> have<00:11:16.480> done<00:11:16.640> the<00:11:16.720> same<00:11:16.960> thing<00:11:17.160> by" }, { "start": 677.27, "duration": 0.0, "text": "I could have done the same thing by" }, { "start": 677.28, "duration": 0.0, "text": "I could have done the same thing by doing<00:11:17.680> restart.<00:11:18.520> Just<00:11:18.880> no<00:11:19.000> difference." }, { "start": 680.35, "duration": 0.0, "text": "doing restart. Just no difference." }, { "start": 680.36, "duration": 0.0, "text": "doing restart. Just no difference. Anyways,<00:11:20.680> once<00:11:20.880> I'm<00:11:21.000> here," }, { "start": 682.23, "duration": 0.0, "text": "Anyways, once I'm here," }, { "start": 682.24, "duration": 0.0, "text": "Anyways, once I'm here, if<00:11:22.400> I<00:11:22.480> have<00:11:22.640> one<00:11:22.800> of<00:11:22.880> these<00:11:23.000> variables<00:11:23.400> like" }, { "start": 683.51, "duration": 0.0, "text": "if I have one of these variables like" }, { "start": 683.52, "duration": 0.0, "text": "if I have one of these variables like this<00:11:23.680> basics<00:11:24.240> structure,<00:11:24.640> you<00:11:24.720> can<00:11:24.839> see<00:11:24.960> it's" }, { "start": 685.07, "duration": 0.0, "text": "this basics structure, you can see it's" }, { "start": 685.08, "duration": 0.0, "text": "this basics structure, you can see it's just<00:11:25.200> filled<00:11:25.400> with<00:11:25.560> garbage.<00:11:26.440> Um" }, { "start": 687.23, "duration": 0.0, "text": "just filled with garbage. Um" }, { "start": 687.24, "duration": 0.0, "text": "just filled with garbage. Um but<00:11:27.360> if<00:11:27.440> I<00:11:27.520> step<00:11:27.760> over<00:11:27.880> the<00:11:27.960> initialization," }, { "start": 688.63, "duration": 0.0, "text": "but if I step over the initialization," }, { "start": 688.64, "duration": 0.0, "text": "but if I step over the initialization, you'll<00:11:28.800> see<00:11:28.960> that<00:11:29.520> uh<00:11:29.800> the<00:11:29.839> debugger<00:11:30.160> will" }, { "start": 690.23, "duration": 0.0, "text": "you'll see that uh the debugger will" }, { "start": 690.24, "duration": 0.0, "text": "you'll see that uh the debugger will tell<00:11:30.400> me<00:11:30.520> what's<00:11:30.720> changed." }, { "start": 692.87, "duration": 0.0, "text": "tell me what's changed." }, { "start": 692.88, "duration": 0.0, "text": "tell me what's changed. And<00:11:33.080> I<00:11:33.120> can<00:11:33.280> see<00:11:34.160> that<00:11:34.360> see<00:11:34.480> the<00:11:34.560> new<00:11:34.680> values<00:11:35.040> of" }, { "start": 695.11, "duration": 0.0, "text": "And I can see that see the new values of" }, { "start": 695.12, "duration": 0.0, "text": "And I can see that see the new values of all<00:11:35.240> these<00:11:35.360> things<00:11:36.320> uh" }, { "start": 696.95, "duration": 0.0, "text": "all these things uh" }, { "start": 696.96, "duration": 0.0, "text": "all these things uh immediately." }, { "start": 698.75, "duration": 0.0, "text": "immediately." }, { "start": 698.76, "duration": 0.0, "text": "immediately. So,<00:11:39.080> I<00:11:39.160> can<00:11:39.280> do<00:11:39.400> that<00:11:39.600> with<00:11:39.760> pretty<00:11:39.960> much" }, { "start": 700.11, "duration": 0.0, "text": "So, I can do that with pretty much" }, { "start": 700.12, "duration": 0.0, "text": "So, I can do that with pretty much anything<00:11:40.440> in<00:11:41.000> in<00:11:41.160> here.<00:11:41.360> We<00:11:41.440> have<00:11:41.560> strings" }, { "start": 702.03, "duration": 0.0, "text": "anything in in here. We have strings" }, { "start": 702.04, "duration": 0.0, "text": "anything in in here. We have strings right<00:11:42.200> here.<00:11:43.000> We<00:11:43.080> have<00:11:43.240> longer<00:11:43.640> text.<00:11:44.760> Um<00:11:44.960> this" }, { "start": 705.11, "duration": 0.0, "text": "right here. We have longer text. Um this" }, { "start": 705.12, "duration": 0.0, "text": "right here. We have longer text. Um this is<00:11:45.240> a<00:11:45.280> wide<00:11:45.560> string,<00:11:45.800> so<00:11:45.960> each<00:11:46.200> character<00:11:46.680> is" }, { "start": 707.03, "duration": 0.0, "text": "is a wide string, so each character is" }, { "start": 707.04, "duration": 0.0, "text": "is a wide string, so each character is uh" }, { "start": 707.87, "duration": 0.0, "text": "uh" }, { "start": 707.88, "duration": 0.0, "text": "uh a<00:11:47.960> U16<00:11:48.560> instead<00:11:48.880> of<00:11:49.000> a<00:11:49.400> instead<00:11:49.640> of<00:11:49.840> just<00:11:50.080> one" }, { "start": 710.23, "duration": 0.0, "text": "a U16 instead of a instead of just one" }, { "start": 710.24, "duration": 0.0, "text": "a U16 instead of a instead of just one byte<00:11:50.600> like<00:11:50.760> the<00:11:51.000> it's<00:11:51.160> UTF-16<00:11:51.880> instead<00:11:52.080> of" }, { "start": 712.15, "duration": 0.0, "text": "byte like the it's UTF-16 instead of" }, { "start": 712.16, "duration": 0.0, "text": "byte like the it's UTF-16 instead of UTF-8.<00:11:53.200> Um<00:11:53.520> so,<00:11:53.640> we<00:11:53.680> can<00:11:53.800> visualize<00:11:54.160> that.<00:11:55.080> Um" }, { "start": 715.99, "duration": 0.0, "text": "UTF-8. Um so, we can visualize that. Um" }, { "start": 716.0, "duration": 0.0, "text": "UTF-8. Um so, we can visualize that. Um There's<00:11:56.120> a<00:11:56.160> bunch<00:11:56.360> of<00:11:56.440> like<00:11:56.840> evaluation<00:11:57.440> tests" }, { "start": 717.67, "duration": 0.0, "text": "There's a bunch of like evaluation tests" }, { "start": 717.68, "duration": 0.0, "text": "There's a bunch of like evaluation tests in<00:11:57.800> here.<00:11:58.040> I've<00:11:58.160> got<00:11:58.320> this<00:11:58.480> fixed<00:11:58.760> array<00:11:59.000> right" }, { "start": 719.19, "duration": 0.0, "text": "in here. I've got this fixed array right" }, { "start": 719.2, "duration": 0.0, "text": "in here. I've got this fixed array right here." }, { "start": 721.43, "duration": 0.0, "text": "here." }, { "start": 721.44, "duration": 0.0, "text": "here. Um" }, { "start": 722.55, "duration": 0.0, "text": "Um" }, { "start": 722.56, "duration": 0.0, "text": "Um and<00:12:02.720> then<00:12:03.240> count<00:12:03.560> member<00:12:03.840> like<00:12:04.040> the<00:12:04.160> it's<00:12:04.320> just" }, { "start": 724.47, "duration": 0.0, "text": "and then count member like the it's just" }, { "start": 724.48, "duration": 0.0, "text": "and then count member like the it's just this<00:12:04.600> structure.<00:12:05.400> The<00:12:05.440> other<00:12:05.560> thing<00:12:05.720> you<00:12:05.800> can" }, { "start": 725.87, "duration": 0.0, "text": "this structure. The other thing you can" }, { "start": 725.88, "duration": 0.0, "text": "this structure. The other thing you can do<00:12:05.960> is<00:12:06.040> evaluate<00:12:06.400> type<00:12:06.640> info.<00:12:06.960> So,<00:12:07.120> if<00:12:07.240> I<00:12:07.280> want" }, { "start": 727.39, "duration": 0.0, "text": "do is evaluate type info. So, if I want" }, { "start": 727.4, "duration": 0.0, "text": "do is evaluate type info. So, if I want to<00:12:07.480> look<00:12:07.600> at<00:12:07.840> what<00:12:08.040> this<00:12:08.200> type<00:12:08.480> is,<00:12:09.040> I<00:12:09.120> can<00:12:09.600> uh<00:12:10.000> I" }, { "start": 730.47, "duration": 0.0, "text": "to look at what this type is, I can uh I" }, { "start": 730.48, "duration": 0.0, "text": "to look at what this type is, I can uh I just<00:12:10.680> selected<00:12:11.080> this<00:12:11.200> text<00:12:11.480> and<00:12:11.560> hovered<00:12:11.840> the" }, { "start": 732.03, "duration": 0.0, "text": "just selected this text and hovered the" }, { "start": 732.04, "duration": 0.0, "text": "just selected this text and hovered the selected<00:12:12.320> text.<00:12:13.160> Uh<00:12:13.240> by<00:12:13.400> default,<00:12:13.760> if<00:12:13.840> you" }, { "start": 733.95, "duration": 0.0, "text": "selected text. Uh by default, if you" }, { "start": 733.96, "duration": 0.0, "text": "selected text. Uh by default, if you hover<00:12:14.160> types,<00:12:14.480> it<00:12:14.560> won't<00:12:14.760> show<00:12:14.920> it<00:12:15.000> cuz<00:12:15.120> it" }, { "start": 735.19, "duration": 0.0, "text": "hover types, it won't show it cuz it" }, { "start": 735.2, "duration": 0.0, "text": "hover types, it won't show it cuz it just<00:12:15.440> becomes<00:12:15.760> a<00:12:15.800> little<00:12:15.920> bit<00:12:16.040> too<00:12:16.160> noisy." }, { "start": 736.51, "duration": 0.0, "text": "just becomes a little bit too noisy." }, { "start": 736.52, "duration": 0.0, "text": "just becomes a little bit too noisy. But,<00:12:17.000> if<00:12:17.080> you<00:12:17.160> want<00:12:17.280> to<00:12:17.360> evaluate<00:12:17.760> type,<00:12:18.000> you" }, { "start": 738.07, "duration": 0.0, "text": "But, if you want to evaluate type, you" }, { "start": 738.08, "duration": 0.0, "text": "But, if you want to evaluate type, you can<00:12:18.520> you<00:12:18.600> can<00:12:18.920> select<00:12:19.240> the<00:12:19.320> text,<00:12:19.640> hover<00:12:19.880> it." }, { "start": 741.11, "duration": 0.0, "text": "can you can select the text, hover it." }, { "start": 741.12, "duration": 0.0, "text": "can you can select the text, hover it. And<00:12:21.240> then<00:12:21.360> here<00:12:21.520> you<00:12:21.640> can<00:12:21.760> see<00:12:21.880> the<00:12:22.000> type<00:12:22.200> info," }, { "start": 742.47, "duration": 0.0, "text": "And then here you can see the type info," }, { "start": 742.48, "duration": 0.0, "text": "And then here you can see the type info, right?<00:12:22.720> So,<00:12:22.800> you<00:12:22.920> can<00:12:23.040> see<00:12:23.200> like<00:12:24.040> um<00:12:24.800> these" }, { "start": 744.99, "duration": 0.0, "text": "right? So, you can see like um these" }, { "start": 745.0, "duration": 0.0, "text": "right? So, you can see like um these blue<00:12:25.240> lines,<00:12:25.600> by<00:12:25.680> the<00:12:25.760> way,<00:12:25.920> are<00:12:26.040> cache<00:12:26.360> line" }, { "start": 746.51, "duration": 0.0, "text": "blue lines, by the way, are cache line" }, { "start": 746.52, "duration": 0.0, "text": "blue lines, by the way, are cache line boundaries.<00:12:27.160> So,<00:12:27.240> you<00:12:27.320> can<00:12:27.440> see<00:12:27.600> like,<00:12:27.760> \"Hey," }, { "start": 747.87, "duration": 0.0, "text": "boundaries. So, you can see like, \"Hey," }, { "start": 747.88, "duration": 0.0, "text": "boundaries. So, you can see like, \"Hey, here's<00:12:28.120> my<00:12:28.280> array<00:12:28.560> of<00:12:28.720> pair<00:12:29.080> structures.<00:12:30.040> Each" }, { "start": 750.23, "duration": 0.0, "text": "here's my array of pair structures. Each" }, { "start": 750.24, "duration": 0.0, "text": "here's my array of pair structures. Each pair<00:12:30.400> structure<00:12:30.680> has<00:12:30.760> an<00:12:30.960> X<00:12:31.240> in<00:12:31.400> 32<00:12:31.840> and<00:12:31.920> a<00:12:31.960> Y" }, { "start": 752.19, "duration": 0.0, "text": "pair structure has an X in 32 and a Y" }, { "start": 752.2, "duration": 0.0, "text": "pair structure has an X in 32 and a Y float.\"<00:12:33.120> Um<00:12:33.280> and<00:12:33.360> it's<00:12:33.480> got<00:12:34.000> um<00:12:34.520> you<00:12:34.600> know,<00:12:35.040> 10" }, { "start": 755.23, "duration": 0.0, "text": "float.\" Um and it's got um you know, 10" }, { "start": 755.24, "duration": 0.0, "text": "float.\" Um and it's got um you know, 10 of<00:12:35.360> those<00:12:35.839> and<00:12:36.400> uh<00:12:36.560> right<00:12:36.760> here<00:12:36.920> is<00:12:37.000> another" }, { "start": 757.23, "duration": 0.0, "text": "of those and uh right here is another" }, { "start": 757.24, "duration": 0.0, "text": "of those and uh right here is another cache<00:12:37.480> line<00:12:37.640> boundary.<00:12:38.760> Um<00:12:39.160> and<00:12:39.280> then<00:12:39.400> we've" }, { "start": 759.55, "duration": 0.0, "text": "cache line boundary. Um and then we've" }, { "start": 759.56, "duration": 0.0, "text": "cache line boundary. Um and then we've got<00:12:39.680> the<00:12:39.800> in<00:12:39.920> 32<00:12:40.280> count<00:12:40.640> at<00:12:40.720> the<00:12:40.839> end,<00:12:41.040> right?" }, { "start": 761.23, "duration": 0.0, "text": "got the in 32 count at the end, right?" }, { "start": 761.24, "duration": 0.0, "text": "got the in 32 count at the end, right? So,<00:12:41.320> we<00:12:41.440> can<00:12:41.520> evaluate<00:12:41.839> type<00:12:42.040> info<00:12:42.240> that<00:12:42.400> way." }, { "start": 763.47, "duration": 0.0, "text": "So, we can evaluate type info that way." }, { "start": 763.48, "duration": 0.0, "text": "So, we can evaluate type info that way. Um" }, { "start": 765.35, "duration": 0.0, "text": "Um" }, { "start": 765.36, "duration": 0.0, "text": "Um and" }, { "start": 766.51, "duration": 0.0, "text": "and" }, { "start": 766.52, "duration": 0.0, "text": "and uh" }, { "start": 768.07, "duration": 0.0, "text": "uh" }, { "start": 768.08, "duration": 0.0, "text": "uh that's<00:12:48.320> like<00:12:48.640> that's<00:12:48.839> like<00:12:49.000> super<00:12:49.320> basic" }, { "start": 770.15, "duration": 0.0, "text": "that's like that's like super basic" }, { "start": 770.16, "duration": 0.0, "text": "that's like that's like super basic early<00:12:50.520> usage.<00:12:51.000> So," }, { "start": 772.35, "duration": 0.0, "text": "early usage. So," }, { "start": 772.36, "duration": 0.0, "text": "early usage. So, um<00:12:52.680> now<00:12:53.000> I<00:12:53.040> can<00:12:53.160> focus<00:12:53.440> on<00:12:53.520> the<00:12:53.600> watch<00:12:53.839> window." }, { "start": 774.67, "duration": 0.0, "text": "um now I can focus on the watch window." }, { "start": 774.68, "duration": 0.0, "text": "um now I can focus on the watch window. So,<00:12:54.760> if<00:12:54.880> I<00:12:54.920> wanted<00:12:55.240> to<00:12:55.480> like<00:12:55.680> hovering<00:12:56.040> is" }, { "start": 776.15, "duration": 0.0, "text": "So, if I wanted to like hovering is" }, { "start": 776.16, "duration": 0.0, "text": "So, if I wanted to like hovering is nice,<00:12:56.760> but<00:12:56.880> sometimes<00:12:57.280> you<00:12:57.400> want<00:12:57.560> to<00:12:57.680> like" }, { "start": 777.95, "duration": 0.0, "text": "nice, but sometimes you want to like" }, { "start": 777.96, "duration": 0.0, "text": "nice, but sometimes you want to like actually<00:12:58.240> just<00:12:58.440> have<00:12:58.600> some<00:12:58.760> expressions<00:12:59.240> in" }, { "start": 779.31, "duration": 0.0, "text": "actually just have some expressions in" }, { "start": 779.32, "duration": 0.0, "text": "actually just have some expressions in here.<00:13:00.000> Um" }, { "start": 780.71, "duration": 0.0, "text": "here. Um" }, { "start": 780.72, "duration": 0.0, "text": "here. Um so,<00:13:01.240> in<00:13:01.360> the<00:13:01.440> watch<00:13:01.600> window,<00:13:01.839> I<00:13:01.880> can<00:13:02.080> add<00:13:02.280> new" }, { "start": 782.39, "duration": 0.0, "text": "so, in the watch window, I can add new" }, { "start": 782.4, "duration": 0.0, "text": "so, in the watch window, I can add new expressions<00:13:03.160> uh<00:13:03.320> just<00:13:03.480> by<00:13:03.600> typing<00:13:04.080> in<00:13:04.200> this" }, { "start": 784.39, "duration": 0.0, "text": "expressions uh just by typing in this" }, { "start": 784.4, "duration": 0.0, "text": "expressions uh just by typing in this little<00:13:04.640> expression<00:13:05.040> slot.<00:13:05.600> I<00:13:05.680> can<00:13:05.839> hit<00:13:06.080> F2<00:13:06.480> to" }, { "start": 786.55, "duration": 0.0, "text": "little expression slot. I can hit F2 to" }, { "start": 786.56, "duration": 0.0, "text": "little expression slot. I can hit F2 to edit<00:13:06.800> it,<00:13:06.920> or<00:13:07.000> I<00:13:07.040> can<00:13:07.200> double<00:13:07.440> click,<00:13:07.760> or<00:13:07.800> I<00:13:07.880> can" }, { "start": 787.95, "duration": 0.0, "text": "edit it, or I can double click, or I can" }, { "start": 787.96, "duration": 0.0, "text": "edit it, or I can double click, or I can just<00:13:08.080> start<00:13:08.280> typing,<00:13:08.600> too.<00:13:08.800> So,<00:13:08.920> I<00:13:08.960> can<00:13:09.080> do<00:13:09.920> um" }, { "start": 790.71, "duration": 0.0, "text": "just start typing, too. So, I can do um" }, { "start": 790.72, "duration": 0.0, "text": "just start typing, too. So, I can do um if<00:13:10.839> I<00:13:10.880> want<00:13:11.040> to<00:13:11.080> evaluate<00:13:11.440> basic<00:13:11.800> structure," }, { "start": 793.11, "duration": 0.0, "text": "if I want to evaluate basic structure," }, { "start": 793.12, "duration": 0.0, "text": "if I want to evaluate basic structure, um" }, { "start": 794.31, "duration": 0.0, "text": "um" }, { "start": 794.32, "duration": 0.0, "text": "um this<00:13:14.600> is<00:13:14.760> just<00:13:15.400> uh<00:13:15.640> I<00:13:15.720> can<00:13:15.839> put<00:13:16.000> this<00:13:16.200> in<00:13:16.400> and<00:13:16.680> it" }, { "start": 796.75, "duration": 0.0, "text": "this is just uh I can put this in and it" }, { "start": 796.76, "duration": 0.0, "text": "this is just uh I can put this in and it expands<00:13:17.240> just<00:13:17.480> like<00:13:17.680> what<00:13:17.800> the<00:13:17.880> hover" }, { "start": 798.11, "duration": 0.0, "text": "expands just like what the hover" }, { "start": 798.12, "duration": 0.0, "text": "expands just like what the hover evaluation<00:13:18.680> would<00:13:18.760> have<00:13:18.880> done.<00:13:19.720> Um" }, { "start": 801.39, "duration": 0.0, "text": "evaluation would have done. Um" }, { "start": 801.4, "duration": 0.0, "text": "evaluation would have done. Um uh" }, { "start": 802.71, "duration": 0.0, "text": "uh" }, { "start": 802.72, "duration": 0.0, "text": "uh Let's<00:13:22.880> see<00:13:22.960> what<00:13:23.080> else.<00:13:23.480> I<00:13:23.560> can<00:13:23.680> put<00:13:23.839> string<00:13:24.160> in" }, { "start": 804.27, "duration": 0.0, "text": "Let's see what else. I can put string in" }, { "start": 804.28, "duration": 0.0, "text": "Let's see what else. I can put string in here.<00:13:24.839> I<00:13:24.880> can<00:13:25.000> put<00:13:25.200> longer<00:13:25.600> text<00:13:26.040> in<00:13:26.160> here.<00:13:27.040> Um" }, { "start": 809.64, "duration": 0.0, "text": "Uh<00:13:29.920> what<00:13:30.080> else?<00:13:30.560> Let's<00:13:30.720> see." }, { "start": 811.71, "duration": 0.0, "text": "Uh what else? Let's see." }, { "start": 811.72, "duration": 0.0, "text": "Uh what else? Let's see. Um" }, { "start": 812.99, "duration": 0.0, "text": "Um" }, { "start": 813.0, "duration": 0.0, "text": "Um So<00:13:33.160> that's<00:13:33.360> like<00:13:33.840> that's<00:13:34.040> a<00:13:34.080> few<00:13:34.640> kinds<00:13:34.920> of" }, { "start": 815.03, "duration": 0.0, "text": "So that's like that's a few kinds of" }, { "start": 815.04, "duration": 0.0, "text": "So that's like that's a few kinds of evaluation<00:13:35.520> things.<00:13:35.800> Now<00:13:35.920> something<00:13:36.240> that's" }, { "start": 816.43, "duration": 0.0, "text": "evaluation things. Now something that's" }, { "start": 816.44, "duration": 0.0, "text": "evaluation things. Now something that's unique<00:13:36.680> about<00:13:36.880> the<00:13:36.960> rad<00:13:37.120> debugger<00:13:37.520> is<00:13:37.680> that" }, { "start": 818.27, "duration": 0.0, "text": "unique about the rad debugger is that" }, { "start": 818.28, "duration": 0.0, "text": "unique about the rad debugger is that all<00:13:38.440> those<00:13:38.720> UIs<00:13:39.040> I<00:13:39.120> showed<00:13:39.320> before<00:13:39.680> like" }, { "start": 819.95, "duration": 0.0, "text": "all those UIs I showed before like" }, { "start": 819.96, "duration": 0.0, "text": "all those UIs I showed before like targets,<00:13:41.200> there's<00:13:41.360> also<00:13:41.600> UIs<00:13:41.880> like" }, { "start": 822.11, "duration": 0.0, "text": "targets, there's also UIs like" }, { "start": 822.12, "duration": 0.0, "text": "targets, there's also UIs like breakpoints." }, { "start": 823.75, "duration": 0.0, "text": "breakpoints." }, { "start": 823.76, "duration": 0.0, "text": "breakpoints. Um<00:13:44.360> these<00:13:44.480> are<00:13:44.560> some<00:13:44.720> breakpoints<00:13:45.280> that<00:13:45.440> I" }, { "start": 825.47, "duration": 0.0, "text": "Um these are some breakpoints that I" }, { "start": 825.48, "duration": 0.0, "text": "Um these are some breakpoints that I have.<00:13:46.040> Step<00:13:46.280> like<00:13:46.400> here's<00:13:46.560> the<00:13:46.640> one<00:13:46.760> I<00:13:46.800> just" }, { "start": 827.03, "duration": 0.0, "text": "have. Step like here's the one I just" }, { "start": 827.04, "duration": 0.0, "text": "have. Step like here's the one I just set,<00:13:47.600> which<00:13:47.800> is<00:13:48.520> right<00:13:48.720> here." }, { "start": 831.03, "duration": 0.0, "text": "set, which is right here." }, { "start": 831.04, "duration": 0.0, "text": "set, which is right here. Um<00:13:51.960> all<00:13:52.200> of<00:13:52.280> these<00:13:52.520> UIs<00:13:53.080> are<00:13:53.280> actually<00:13:54.120> uh<00:13:54.560> all" }, { "start": 834.83, "duration": 0.0, "text": "Um all of these UIs are actually uh all" }, { "start": 834.84, "duration": 0.0, "text": "Um all of these UIs are actually uh all I<00:13:54.920> guess<00:13:55.120> I'll<00:13:55.200> just<00:13:55.400> spoil<00:13:55.760> it.<00:13:55.920> These<00:13:56.480> are" }, { "start": 836.63, "duration": 0.0, "text": "I guess I'll just spoil it. These are" }, { "start": 836.64, "duration": 0.0, "text": "I guess I'll just spoil it. These are all<00:13:56.800> watch<00:13:57.040> windows.<00:13:57.800> Um<00:13:58.480> so<00:13:59.200> so<00:13:59.400> basically" }, { "start": 839.87, "duration": 0.0, "text": "all watch windows. Um so so basically" }, { "start": 839.88, "duration": 0.0, "text": "all watch windows. Um so so basically like<00:14:00.040> if<00:14:00.160> you<00:14:00.240> didn't<00:14:00.400> want<00:14:00.520> to<00:14:00.600> use<00:14:00.720> these" }, { "start": 840.87, "duration": 0.0, "text": "like if you didn't want to use these" }, { "start": 840.88, "duration": 0.0, "text": "like if you didn't want to use these tabs<00:14:01.160> at<00:14:01.280> all," }, { "start": 842.59, "duration": 0.0, "text": "tabs at all," }, { "start": 842.6, "duration": 0.0, "text": "tabs at all, you<00:14:02.680> could<00:14:02.800> just<00:14:02.960> say,<00:14:03.120> \"Hey,<00:14:03.280> I<00:14:03.360> want<00:14:03.480> to<00:14:03.520> look" }, { "start": 843.67, "duration": 0.0, "text": "you could just say, \"Hey, I want to look" }, { "start": 843.68, "duration": 0.0, "text": "you could just say, \"Hey, I want to look at<00:14:03.800> all<00:14:03.920> the<00:14:04.000> targets" }, { "start": 845.47, "duration": 0.0, "text": "at all the targets" }, { "start": 845.48, "duration": 0.0, "text": "at all the targets in<00:14:05.600> my<00:14:05.720> watch<00:14:05.960> window.\"<00:14:06.240> And<00:14:06.360> if<00:14:06.440> I<00:14:06.480> expand" }, { "start": 846.87, "duration": 0.0, "text": "in my watch window.\" And if I expand" }, { "start": 846.88, "duration": 0.0, "text": "in my watch window.\" And if I expand that,<00:14:07.040> then<00:14:07.200> I<00:14:07.240> just<00:14:07.480> see<00:14:07.600> something<00:14:07.880> that" }, { "start": 848.03, "duration": 0.0, "text": "that, then I just see something that" }, { "start": 848.04, "duration": 0.0, "text": "that, then I just see something that looks<00:14:08.600> quite<00:14:08.880> a<00:14:08.920> lot<00:14:09.320> like<00:14:09.640> the<00:14:09.760> targets<00:14:10.200> tab," }, { "start": 850.75, "duration": 0.0, "text": "looks quite a lot like the targets tab," }, { "start": 850.76, "duration": 0.0, "text": "looks quite a lot like the targets tab, right?<00:14:11.760> I<00:14:11.800> can<00:14:11.920> just<00:14:12.040> start<00:14:12.160> evaluating" }, { "start": 852.59, "duration": 0.0, "text": "right? I can just start evaluating" }, { "start": 852.6, "duration": 0.0, "text": "right? I can just start evaluating things<00:14:12.800> like<00:14:12.920> that.<00:14:13.200> If<00:14:13.320> I'm<00:14:13.440> like,<00:14:13.560> \"Hey,<00:14:13.680> I" }, { "start": 853.71, "duration": 0.0, "text": "things like that. If I'm like, \"Hey, I" }, { "start": 853.72, "duration": 0.0, "text": "things like that. If I'm like, \"Hey, I want<00:14:13.840> to<00:14:13.920> see<00:14:14.000> all<00:14:14.080> my<00:14:14.200> breakpoints.\"" }, { "start": 855.75, "duration": 0.0, "text": "want to see all my breakpoints.\"" }, { "start": 855.76, "duration": 0.0, "text": "want to see all my breakpoints.\" Uh<00:14:15.960> that<00:14:16.080> can<00:14:16.200> also<00:14:16.440> just<00:14:16.600> be<00:14:16.720> in<00:14:16.840> here." }, { "start": 858.31, "duration": 0.0, "text": "Uh that can also just be in here." }, { "start": 858.32, "duration": 0.0, "text": "Uh that can also just be in here. Um" }, { "start": 859.59, "duration": 0.0, "text": "Um" }, { "start": 859.6, "duration": 0.0, "text": "Um And<00:14:19.760> so<00:14:19.880> I<00:14:19.960> don't<00:14:20.440> necessarily<00:14:20.920> need<00:14:21.160> these" }, { "start": 861.31, "duration": 0.0, "text": "And so I don't necessarily need these" }, { "start": 861.32, "duration": 0.0, "text": "And so I don't necessarily need these things.<00:14:21.720> And<00:14:21.880> let<00:14:22.160> you<00:14:22.240> know,<00:14:22.360> let's<00:14:22.520> say<00:14:22.640> for" }, { "start": 862.79, "duration": 0.0, "text": "things. And let you know, let's say for" }, { "start": 862.8, "duration": 0.0, "text": "things. And let you know, let's say for example<00:14:23.200> that<00:14:23.360> like<00:14:24.160> you<00:14:24.240> know,<00:14:24.400> I<00:14:24.480> don't<00:14:24.640> want" }, { "start": 864.75, "duration": 0.0, "text": "example that like you know, I don't want" }, { "start": 864.76, "duration": 0.0, "text": "example that like you know, I don't want to<00:14:24.880> hover<00:14:25.200> my<00:14:25.360> thread<00:14:25.720> instruction<00:14:26.120> pointer" }, { "start": 866.39, "duration": 0.0, "text": "to hover my thread instruction pointer" }, { "start": 866.4, "duration": 0.0, "text": "to hover my thread instruction pointer every<00:14:26.640> time<00:14:26.840> I<00:14:26.880> want<00:14:27.000> to<00:14:27.080> see<00:14:27.160> the<00:14:27.240> call<00:14:27.440> stack." }, { "start": 868.67, "duration": 0.0, "text": "every time I want to see the call stack." }, { "start": 868.68, "duration": 0.0, "text": "every time I want to see the call stack. Um" }, { "start": 869.71, "duration": 0.0, "text": "Um" }, { "start": 869.72, "duration": 0.0, "text": "Um well,<00:14:30.000> like<00:14:30.440> what<00:14:30.600> can<00:14:30.720> I<00:14:30.800> do<00:14:31.120> to<00:14:31.240> start" }, { "start": 871.55, "duration": 0.0, "text": "well, like what can I do to start" }, { "start": 871.56, "duration": 0.0, "text": "well, like what can I do to start inspecting<00:14:32.600> the<00:14:32.720> state<00:14:33.040> of<00:14:33.160> a<00:14:33.200> particular" }, { "start": 873.67, "duration": 0.0, "text": "inspecting the state of a particular" }, { "start": 873.68, "duration": 0.0, "text": "inspecting the state of a particular thread?<00:14:34.040> Well,<00:14:34.440> I<00:14:34.520> know<00:14:34.680> I'm<00:14:34.760> debugging<00:14:35.120> a" }, { "start": 875.15, "duration": 0.0, "text": "thread? Well, I know I'm debugging a" }, { "start": 875.16, "duration": 0.0, "text": "thread? Well, I know I'm debugging a process.<00:14:35.720> So<00:14:35.800> let<00:14:35.920> me<00:14:36.040> let<00:14:36.200> me<00:14:36.480> maybe<00:14:36.720> look<00:14:36.880> at" }, { "start": 876.95, "duration": 0.0, "text": "process. So let me let me maybe look at" }, { "start": 876.96, "duration": 0.0, "text": "process. So let me let me maybe look at all<00:14:37.040> the<00:14:37.120> processes<00:14:37.680> I<00:14:37.720> have.<00:14:38.200> Okay,<00:14:38.440> so" }, { "start": 878.55, "duration": 0.0, "text": "all the processes I have. Okay, so" }, { "start": 878.56, "duration": 0.0, "text": "all the processes I have. Okay, so there's<00:14:38.800> all<00:14:38.839> the<00:14:38.920> processes<00:14:39.400> that<00:14:39.480> I'm" }, { "start": 879.55, "duration": 0.0, "text": "there's all the processes that I'm" }, { "start": 879.56, "duration": 0.0, "text": "there's all the processes that I'm attached<00:14:39.920> to." }, { "start": 880.829, "duration": 0.0, "text": "attached to." }, { "start": 880.839, "duration": 0.0, "text": "attached to. Um<00:14:41.400> if<00:14:41.520> I<00:14:41.560> expand<00:14:41.960> that,<00:14:42.120> it's<00:14:42.240> like,<00:14:42.400> \"Oh," }, { "start": 882.51, "duration": 0.0, "text": "Um if I expand that, it's like, \"Oh," }, { "start": 882.52, "duration": 0.0, "text": "Um if I expand that, it's like, \"Oh, I've<00:14:42.640> got<00:14:42.880> the<00:14:43.240> I've<00:14:43.360> got<00:14:43.560> threads<00:14:43.920> that<00:14:44.080> are" }, { "start": 884.39, "duration": 0.0, "text": "I've got the I've got threads that are" }, { "start": 884.4, "duration": 0.0, "text": "I've got the I've got threads that are in<00:14:44.520> this<00:14:44.680> process.\"<00:14:45.360> Uh<00:14:45.480> we<00:14:45.600> have<00:14:45.720> three<00:14:46.040> of" }, { "start": 886.11, "duration": 0.0, "text": "in this process.\" Uh we have three of" }, { "start": 886.12, "duration": 0.0, "text": "in this process.\" Uh we have three of these.<00:14:46.360> These<00:14:46.520> are<00:14:46.600> just<00:14:46.800> spawned.<00:14:47.400> The<00:14:47.520> these" }, { "start": 887.71, "duration": 0.0, "text": "these. These are just spawned. The these" }, { "start": 887.72, "duration": 0.0, "text": "these. These are just spawned. The these are<00:14:47.839> not<00:14:48.360> um" }, { "start": 889.75, "duration": 0.0, "text": "are not um" }, { "start": 889.76, "duration": 0.0, "text": "are not um these<00:14:49.880> are<00:14:49.920> not<00:14:50.080> spawned<00:14:50.360> by<00:14:50.640> this<00:14:50.880> program." }, { "start": 891.23, "duration": 0.0, "text": "these are not spawned by this program." }, { "start": 891.24, "duration": 0.0, "text": "these are not spawned by this program. They're<00:14:51.320> spawned<00:14:51.640> by<00:14:51.760> the<00:14:52.480> by<00:14:52.720> the<00:14:52.880> operating" }, { "start": 893.23, "duration": 0.0, "text": "They're spawned by the by the operating" }, { "start": 893.24, "duration": 0.0, "text": "They're spawned by the by the operating system<00:14:53.880> uh<00:14:54.360> for<00:14:55.040> for<00:14:55.200> reasons<00:14:55.520> that<00:14:55.640> are<00:14:56.000> uh" }, { "start": 896.15, "duration": 0.0, "text": "system uh for for reasons that are uh" }, { "start": 896.16, "duration": 0.0, "text": "system uh for for reasons that are uh you<00:14:56.240> could<00:14:56.360> probably<00:14:56.720> find<00:14:56.960> out,<00:14:57.160> but<00:14:57.360> we" }, { "start": 897.71, "duration": 0.0, "text": "you could probably find out, but we" }, { "start": 897.72, "duration": 0.0, "text": "you could probably find out, but we don't<00:14:57.960> know." }, { "start": 898.829, "duration": 0.0, "text": "don't know." }, { "start": 898.839, "duration": 0.0, "text": "don't know. Um" }, { "start": 900.23, "duration": 0.0, "text": "Um" }, { "start": 900.24, "duration": 0.0, "text": "Um but<00:15:00.360> anyways,<00:15:00.680> here's<00:15:00.880> my<00:15:01.040> thread.<00:15:01.320> I<00:15:01.360> can" }, { "start": 901.47, "duration": 0.0, "text": "but anyways, here's my thread. I can" }, { "start": 901.48, "duration": 0.0, "text": "but anyways, here's my thread. I can expand<00:15:01.880> it<00:15:02.320> and<00:15:02.400> it's<00:15:02.520> like,<00:15:02.680> \"Oh,<00:15:03.080> there's<00:15:03.280> my" }, { "start": 903.39, "duration": 0.0, "text": "expand it and it's like, \"Oh, there's my" }, { "start": 903.4, "duration": 0.0, "text": "expand it and it's like, \"Oh, there's my call<00:15:03.560> stack.\"<00:15:04.160> That's<00:15:04.320> just<00:15:04.560> in<00:15:04.680> here<00:15:05.480> um" }, { "start": 906.15, "duration": 0.0, "text": "call stack.\" That's just in here um" }, { "start": 906.16, "duration": 0.0, "text": "call stack.\" That's just in here um inside<00:15:06.520> of<00:15:06.600> this<00:15:06.760> process<00:15:07.160> tree.<00:15:07.880> Now<00:15:08.000> if<00:15:08.160> I" }, { "start": 908.19, "duration": 0.0, "text": "inside of this process tree. Now if I" }, { "start": 908.2, "duration": 0.0, "text": "inside of this process tree. Now if I wanted<00:15:08.480> to<00:15:08.560> like" }, { "start": 909.51, "duration": 0.0, "text": "wanted to like" }, { "start": 909.52, "duration": 0.0, "text": "wanted to like not<00:15:09.800> bother<00:15:10.560> expanding<00:15:11.320> that<00:15:11.480> every<00:15:11.600> time,<00:15:11.839> I" }, { "start": 911.87, "duration": 0.0, "text": "not bother expanding that every time, I" }, { "start": 911.88, "duration": 0.0, "text": "not bother expanding that every time, I could<00:15:12.000> also<00:15:12.200> just<00:15:12.360> do<00:15:12.480> like,<00:15:12.960> \"Okay,<00:15:13.320> well," }, { "start": 913.47, "duration": 0.0, "text": "could also just do like, \"Okay, well," }, { "start": 913.48, "duration": 0.0, "text": "could also just do like, \"Okay, well, can<00:15:13.640> I<00:15:13.680> do<00:15:13.839> threads?\"<00:15:14.400> Or<00:15:14.839> maybe<00:15:15.000> I<00:15:15.040> can<00:15:15.120> do" }, { "start": 915.23, "duration": 0.0, "text": "can I do threads?\" Or maybe I can do" }, { "start": 915.24, "duration": 0.0, "text": "can I do threads?\" Or maybe I can do processes<00:15:16.520> at<00:15:16.720> zero<00:15:17.440> dot<00:15:17.680> threads<00:15:18.920> um<00:15:19.280> at" }, { "start": 919.47, "duration": 0.0, "text": "processes at zero dot threads um at" }, { "start": 919.48, "duration": 0.0, "text": "processes at zero dot threads um at zero.<00:15:20.400> And<00:15:20.520> hey,<00:15:20.680> there's<00:15:20.880> my<00:15:21.000> mule<00:15:21.240> main.<00:15:21.720> And" }, { "start": 921.829, "duration": 0.0, "text": "zero. And hey, there's my mule main. And" }, { "start": 921.839, "duration": 0.0, "text": "zero. And hey, there's my mule main. And then<00:15:22.000> like<00:15:22.200> let's<00:15:22.400> do<00:15:22.520> like<00:15:22.680> dot<00:15:22.960> call<00:15:23.240> stack." }, { "start": 924.63, "duration": 0.0, "text": "then like let's do like dot call stack." }, { "start": 924.64, "duration": 0.0, "text": "then like let's do like dot call stack. There<00:15:24.760> we<00:15:24.840> go." }, { "start": 925.83, "duration": 0.0, "text": "There we go." }, { "start": 925.84, "duration": 0.0, "text": "There we go. Um<00:15:26.680> now<00:15:26.800> I<00:15:26.880> can<00:15:27.000> just<00:15:27.120> evaluate<00:15:27.400> the<00:15:27.480> call" }, { "start": 927.67, "duration": 0.0, "text": "Um now I can just evaluate the call" }, { "start": 927.68, "duration": 0.0, "text": "Um now I can just evaluate the call stack.<00:15:28.360> There's<00:15:28.760> a<00:15:29.440> a<00:15:29.520> fast<00:15:29.760> path<00:15:30.000> I<00:15:30.040> can<00:15:30.160> do" }, { "start": 930.27, "duration": 0.0, "text": "stack. There's a a fast path I can do" }, { "start": 930.28, "duration": 0.0, "text": "stack. There's a a fast path I can do for<00:15:30.400> that<00:15:30.680> is<00:15:30.800> just<00:15:31.040> current<00:15:31.360> thread<00:15:31.920> dot<00:15:32.120> call" }, { "start": 932.35, "duration": 0.0, "text": "for that is just current thread dot call" }, { "start": 932.36, "duration": 0.0, "text": "for that is just current thread dot call stack<00:15:32.920> or<00:15:33.040> even<00:15:33.200> more<00:15:33.360> succinctly<00:15:34.400> call" }, { "start": 934.59, "duration": 0.0, "text": "stack or even more succinctly call" }, { "start": 934.6, "duration": 0.0, "text": "stack or even more succinctly call stack.<00:15:35.400> Um<00:15:35.800> which<00:15:36.040> is<00:15:36.560> All<00:15:36.720> of<00:15:36.800> these<00:15:36.960> things" }, { "start": 937.19, "duration": 0.0, "text": "stack. Um which is All of these things" }, { "start": 937.2, "duration": 0.0, "text": "stack. Um which is All of these things mean<00:15:37.360> the<00:15:37.440> same<00:15:37.640> thing." }, { "start": 938.67, "duration": 0.0, "text": "mean the same thing." }, { "start": 938.68, "duration": 0.0, "text": "mean the same thing. And<00:15:38.800> sure<00:15:39.000> enough,<00:15:39.320> if<00:15:39.480> I<00:15:39.560> open<00:15:39.840> up<00:15:40.320> a<00:15:40.400> call" }, { "start": 940.59, "duration": 0.0, "text": "And sure enough, if I open up a call" }, { "start": 940.6, "duration": 0.0, "text": "And sure enough, if I open up a call stack<00:15:40.920> tab,<00:15:41.160> which<00:15:41.320> is<00:15:41.560> this<00:15:41.720> is<00:15:41.800> just<00:15:42.000> a<00:15:42.040> fast" }, { "start": 942.35, "duration": 0.0, "text": "stack tab, which is this is just a fast" }, { "start": 942.36, "duration": 0.0, "text": "stack tab, which is this is just a fast path,<00:15:42.680> right?<00:15:42.880> So<00:15:42.960> this<00:15:43.120> is<00:15:43.240> like" }, { "start": 944.15, "duration": 0.0, "text": "path, right? So this is like" }, { "start": 944.16, "duration": 0.0, "text": "path, right? So this is like um<00:15:44.600> this<00:15:44.720> is<00:15:44.840> like<00:15:45.160> very<00:15:45.440> similar<00:15:45.680> to<00:15:45.760> what" }, { "start": 945.91, "duration": 0.0, "text": "um this is like very similar to what" }, { "start": 945.92, "duration": 0.0, "text": "um this is like very similar to what you'd<00:15:46.040> see<00:15:46.160> in<00:15:46.240> Visual<00:15:46.520> Studio,<00:15:46.920> for<00:15:47.040> example." }, { "start": 948.27, "duration": 0.0, "text": "you'd see in Visual Studio, for example." }, { "start": 948.28, "duration": 0.0, "text": "you'd see in Visual Studio, for example. Um" }, { "start": 949.23, "duration": 0.0, "text": "Um" }, { "start": 949.24, "duration": 0.0, "text": "Um you<00:15:49.280> can<00:15:49.400> see<00:15:49.520> your<00:15:49.640> call<00:15:49.800> stack<00:15:50.080> here.<00:15:50.560> If<00:15:50.800> I" }, { "start": 950.87, "duration": 0.0, "text": "you can see your call stack here. If I" }, { "start": 950.88, "duration": 0.0, "text": "you can see your call stack here. If I actually<00:15:51.400> uh<00:15:51.840> go<00:15:52.000> to<00:15:52.080> this<00:15:52.240> tab<00:15:52.520> and<00:15:52.640> open<00:15:52.840> up" }, { "start": 952.95, "duration": 0.0, "text": "actually uh go to this tab and open up" }, { "start": 952.96, "duration": 0.0, "text": "actually uh go to this tab and open up the<00:15:53.120> options<00:15:53.600> for<00:15:53.720> this<00:15:53.880> tab,<00:15:54.360> you'll<00:15:54.560> see" }, { "start": 954.75, "duration": 0.0, "text": "the options for this tab, you'll see" }, { "start": 954.76, "duration": 0.0, "text": "the options for this tab, you'll see that<00:15:54.920> the<00:15:55.040> expression<00:15:56.000> that's<00:15:56.200> used<00:15:56.480> to" }, { "start": 956.59, "duration": 0.0, "text": "that the expression that's used to" }, { "start": 956.6, "duration": 0.0, "text": "that the expression that's used to create<00:15:57.000> this<00:15:57.480> tab<00:15:57.760> info<00:15:58.720> is<00:15:59.080> query<00:15:59.680> colon<00:16:00.160> call" }, { "start": 960.39, "duration": 0.0, "text": "create this tab info is query colon call" }, { "start": 960.4, "duration": 0.0, "text": "create this tab info is query colon call stack.<00:16:01.080> Now<00:16:01.320> the<00:16:01.400> query<00:16:01.720> colon<00:16:02.000> thing<00:16:02.160> is<00:16:02.280> just" }, { "start": 962.47, "duration": 0.0, "text": "stack. Now the query colon thing is just" }, { "start": 962.48, "duration": 0.0, "text": "stack. Now the query colon thing is just a<00:16:02.520> disambiguator.<00:16:03.360> This<00:16:03.560> is<00:16:03.640> just<00:16:03.840> in<00:16:03.920> case<00:16:04.440> if" }, { "start": 964.55, "duration": 0.0, "text": "a disambiguator. This is just in case if" }, { "start": 964.56, "duration": 0.0, "text": "a disambiguator. This is just in case if you<00:16:04.640> have<00:16:04.800> a<00:16:04.840> local<00:16:05.080> variable<00:16:05.480> called<00:16:05.800> call" }, { "start": 965.99, "duration": 0.0, "text": "you have a local variable called call" }, { "start": 966.0, "duration": 0.0, "text": "you have a local variable called call stack,<00:16:06.760> this<00:16:07.040> is<00:16:07.320> basically<00:16:07.720> telling<00:16:07.960> the" }, { "start": 968.03, "duration": 0.0, "text": "stack, this is basically telling the" }, { "start": 968.04, "duration": 0.0, "text": "stack, this is basically telling the debugger's<00:16:08.400> evaluation<00:16:08.920> system,<00:16:09.640> \"Hey,<00:16:10.280> I'm" }, { "start": 970.47, "duration": 0.0, "text": "debugger's evaluation system, \"Hey, I'm" }, { "start": 970.48, "duration": 0.0, "text": "debugger's evaluation system, \"Hey, I'm just<00:16:10.720> doing<00:16:10.920> a<00:16:10.960> debugger<00:16:11.320> query.<00:16:11.800> I<00:16:11.920> don't" }, { "start": 972.19, "duration": 0.0, "text": "just doing a debugger query. I don't" }, { "start": 972.2, "duration": 0.0, "text": "just doing a debugger query. I don't want<00:16:12.360> you<00:16:12.440> to<00:16:12.600> resolve<00:16:13.000> this<00:16:13.200> as<00:16:13.320> a<00:16:13.360> local" }, { "start": 973.59, "duration": 0.0, "text": "want you to resolve this as a local" }, { "start": 973.6, "duration": 0.0, "text": "want you to resolve this as a local variable,<00:16:14.000> right?\"<00:16:14.200> So<00:16:14.360> just<00:16:14.960> unambiguously" }, { "start": 975.63, "duration": 0.0, "text": "variable, right?\" So just unambiguously" }, { "start": 975.64, "duration": 0.0, "text": "variable, right?\" So just unambiguously referring<00:16:16.000> to<00:16:16.280> the<00:16:16.800> to<00:16:16.920> the<00:16:17.000> current<00:16:17.320> thread's" }, { "start": 977.63, "duration": 0.0, "text": "referring to the to the current thread's" }, { "start": 977.64, "duration": 0.0, "text": "referring to the to the current thread's call<00:16:17.800> stack,<00:16:18.080> basically." }, { "start": 979.59, "duration": 0.0, "text": "call stack, basically." }, { "start": 979.6, "duration": 0.0, "text": "call stack, basically. So<00:16:19.680> anyway,<00:16:20.000> it's<00:16:20.080> like<00:16:20.360> that's<00:16:20.600> just<00:16:20.760> all<00:16:20.880> the" }, { "start": 980.95, "duration": 0.0, "text": "So anyway, it's like that's just all the" }, { "start": 980.96, "duration": 0.0, "text": "So anyway, it's like that's just all the call<00:16:21.200> stack<00:16:22.240> tab<00:16:22.600> is.<00:16:23.040> And<00:16:23.160> sure<00:16:23.320> enough,<00:16:23.520> if<00:16:23.680> I" }, { "start": 983.75, "duration": 0.0, "text": "call stack tab is. And sure enough, if I" }, { "start": 983.76, "duration": 0.0, "text": "call stack tab is. And sure enough, if I open<00:16:23.960> up<00:16:24.080> like<00:16:24.480> the<00:16:24.600> targets<00:16:25.000> view,<00:16:25.920> query" }, { "start": 986.15, "duration": 0.0, "text": "open up like the targets view, query" }, { "start": 986.16, "duration": 0.0, "text": "open up like the targets view, query targets," }, { "start": 988.829, "duration": 0.0, "text": "targets," }, { "start": 988.839, "duration": 0.0, "text": "targets, query<00:16:29.120> breakpoints," }, { "start": 990.91, "duration": 0.0, "text": "query breakpoints," }, { "start": 990.92, "duration": 0.0, "text": "query breakpoints, uh" }, { "start": 992.63, "duration": 0.0, "text": "uh" }, { "start": 992.64, "duration": 0.0, "text": "uh I<00:16:32.680> don't<00:16:32.800> know.<00:16:33.280> That's<00:16:33.640> like" }, { "start": 994.23, "duration": 0.0, "text": "I don't know. That's like" }, { "start": 994.24, "duration": 0.0, "text": "I don't know. That's like >> It's<00:16:34.440> good<00:16:34.720> because<00:16:35.040> like<00:16:35.360> already<00:16:35.800> people" }, { "start": 996.23, "duration": 0.0, "text": ">> It's good because like already people" }, { "start": 996.24, "duration": 0.0, "text": ">> It's good because like already people three<00:16:36.880> separate<00:16:37.280> people<00:16:37.720> at<00:16:37.839> the<00:16:37.960> same<00:16:38.360> time" }, { "start": 998.95, "duration": 0.0, "text": "three separate people at the same time" }, { "start": 998.96, "duration": 0.0, "text": "three separate people at the same time asked<00:16:39.320> like,<00:16:39.480> \"What<00:16:39.680> if<00:16:39.839> you<00:16:40.000> have<00:16:40.320> a<00:16:40.400> variable" }, { "start": 1001.03, "duration": 0.0, "text": "asked like, \"What if you have a variable" }, { "start": 1001.04, "duration": 0.0, "text": "asked like, \"What if you have a variable named<00:16:41.520> targets<00:16:42.160> or<00:16:42.440> breakpoints?\"" }, { "start": 1003.11, "duration": 0.0, "text": "named targets or breakpoints?\"" }, { "start": 1003.12, "duration": 0.0, "text": "named targets or breakpoints?\" >> Yes.<00:16:43.600> Yes.<00:16:43.880> Yes.<00:16:44.120> Yes.<00:16:44.440> Of<00:16:44.560> course.<00:16:44.920> Yeah." }, { "start": 1005.95, "duration": 0.0, "text": ">> Yes. Yes. Yes. Yes. Of course. Yeah." }, { "start": 1005.96, "duration": 0.0, "text": ">> Yes. Yes. Yes. Yes. Of course. Yeah. Um<00:16:46.360> so<00:16:46.560> that's<00:16:46.920> that's<00:16:47.560> uh<00:16:47.760> that's<00:16:48.000> like" }, { "start": 1009.55, "duration": 0.0, "text": "Um so that's that's uh that's like" }, { "start": 1009.56, "duration": 0.0, "text": "Um so that's that's uh that's like interesting<00:16:49.960> thing<00:16:50.480> number<00:16:50.720> one.<00:16:50.960> So<00:16:51.040> that's" }, { "start": 1011.19, "duration": 0.0, "text": "interesting thing number one. So that's" }, { "start": 1011.2, "duration": 0.0, "text": "interesting thing number one. So that's some<00:16:51.320> basic<00:16:51.640> usage<00:16:52.120> and<00:16:52.280> showing<00:16:53.040> kind<00:16:53.200> of<00:16:53.280> how" }, { "start": 1013.43, "duration": 0.0, "text": "some basic usage and showing kind of how" }, { "start": 1013.44, "duration": 0.0, "text": "some basic usage and showing kind of how all<00:16:53.560> these<00:16:53.760> views<00:16:54.040> are<00:16:54.160> really<00:16:54.400> just<00:16:54.640> all" }, { "start": 1014.87, "duration": 0.0, "text": "all these views are really just all" }, { "start": 1014.88, "duration": 0.0, "text": "all these views are really just all different<00:16:55.160> versions<00:16:55.480> of<00:16:55.560> the<00:16:55.640> same<00:16:55.880> thing.<00:16:56.640> So" }, { "start": 1016.75, "duration": 0.0, "text": "different versions of the same thing. So" }, { "start": 1016.76, "duration": 0.0, "text": "different versions of the same thing. So another<00:16:57.000> thing<00:16:57.200> that<00:16:57.320> we<00:16:57.440> can<00:16:57.560> do,<00:16:57.800> so<00:16:57.920> we<00:16:58.040> have" }, { "start": 1018.75, "duration": 0.0, "text": "another thing that we can do, so we have" }, { "start": 1018.76, "duration": 0.0, "text": "another thing that we can do, so we have I<00:16:58.839> showed<00:16:59.080> breakpoints<00:16:59.520> already.<00:16:59.880> What<00:17:00.000> I<00:17:00.080> can" }, { "start": 1020.23, "duration": 0.0, "text": "I showed breakpoints already. What I can" }, { "start": 1020.24, "duration": 0.0, "text": "I showed breakpoints already. What I can do<00:17:00.560> is<00:17:01.320> um" }, { "start": 1021.91, "duration": 0.0, "text": "do is um" }, { "start": 1021.92, "duration": 0.0, "text": "do is um I<00:17:01.960> can<00:17:02.080> also<00:17:02.240> show<00:17:02.400> some<00:17:02.720> better<00:17:03.160> of<00:17:03.520> uh" }, { "start": 1024.27, "duration": 0.0, "text": "I can also show some better of uh" }, { "start": 1024.28, "duration": 0.0, "text": "I can also show some better of uh visualization<00:17:04.959> stuff." }, { "start": 1026.55, "duration": 0.0, "text": "visualization stuff." }, { "start": 1026.56, "duration": 0.0, "text": "visualization stuff. So<00:17:06.640> if<00:17:06.760> I<00:17:06.839> go<00:17:07.000> to<00:17:07.079> like<00:17:07.600> longer<00:17:08.040> text,<00:17:08.560> for" }, { "start": 1028.67, "duration": 0.0, "text": "So if I go to like longer text, for" }, { "start": 1028.68, "duration": 0.0, "text": "So if I go to like longer text, for example,<00:17:09.079> that<00:17:09.240> variable<00:17:09.680> up<00:17:09.760> here<00:17:09.959> that's" }, { "start": 1030.069, "duration": 0.0, "text": "example, that variable up here that's" }, { "start": 1030.079, "duration": 0.0, "text": "example, that variable up here that's just<00:17:10.280> a<00:17:10.319> big<00:17:10.920> string.<00:17:11.560> If<00:17:11.680> you're<00:17:11.760> trying<00:17:11.959> to" }, { "start": 1031.99, "duration": 0.0, "text": "just a big string. If you're trying to" }, { "start": 1032.0, "duration": 0.0, "text": "just a big string. If you're trying to like<00:17:12.199> look<00:17:12.360> at<00:17:12.480> this<00:17:12.680> text<00:17:12.959> and<00:17:13.040> like<00:17:13.640> um<00:17:14.120> I<00:17:14.199> In" }, { "start": 1034.309, "duration": 0.0, "text": "like look at this text and like um I In" }, { "start": 1034.319, "duration": 0.0, "text": "like look at this text and like um I In this<00:17:14.480> case<00:17:14.640> it's<00:17:14.800> short<00:17:15.040> enough<00:17:15.240> that<00:17:15.360> you<00:17:15.400> can" }, { "start": 1035.51, "duration": 0.0, "text": "this case it's short enough that you can" }, { "start": 1035.52, "duration": 0.0, "text": "this case it's short enough that you can actually<00:17:15.760> see<00:17:15.959> it,<00:17:16.160> but<00:17:16.520> uh<00:17:16.640> just<00:17:16.880> when<00:17:17.040> I" }, { "start": 1037.11, "duration": 0.0, "text": "actually see it, but uh just when I" }, { "start": 1037.12, "duration": 0.0, "text": "actually see it, but uh just when I hover.<00:17:17.839> But<00:17:17.959> if,<00:17:18.319> you<00:17:18.400> know,<00:17:18.560> like<00:17:18.880> looking<00:17:19.199> at" }, { "start": 1039.309, "duration": 0.0, "text": "hover. But if, you know, like looking at" }, { "start": 1039.319, "duration": 0.0, "text": "hover. But if, you know, like looking at the<00:17:19.400> string<00:17:19.680> this<00:17:19.880> way<00:17:20.720> is<00:17:20.880> not<00:17:21.040> necessarily" }, { "start": 1041.63, "duration": 0.0, "text": "the string this way is not necessarily" }, { "start": 1041.64, "duration": 0.0, "text": "the string this way is not necessarily what<00:17:21.800> you<00:17:21.920> want,<00:17:22.160> especially<00:17:22.520> like<00:17:22.720> it<00:17:22.880> has" }, { "start": 1043.069, "duration": 0.0, "text": "what you want, especially like it has" }, { "start": 1043.079, "duration": 0.0, "text": "what you want, especially like it has some<00:17:23.240> new<00:17:23.400> line<00:17:23.640> characters<00:17:24.120> in<00:17:24.240> there.<00:17:24.520> Like" }, { "start": 1044.67, "duration": 0.0, "text": "some new line characters in there. Like" }, { "start": 1044.68, "duration": 0.0, "text": "some new line characters in there. Like maybe<00:17:24.920> I<00:17:24.959> don't<00:17:25.199> want<00:17:25.360> the<00:17:25.439> single<00:17:25.760> line<00:17:26.560> um" }, { "start": 1046.87, "duration": 0.0, "text": "maybe I don't want the single line um" }, { "start": 1046.88, "duration": 0.0, "text": "maybe I don't want the single line um visualization<00:17:27.520> here.<00:17:28.160> What<00:17:28.280> I<00:17:28.319> can<00:17:28.439> actually" }, { "start": 1048.67, "duration": 0.0, "text": "visualization here. What I can actually" }, { "start": 1048.68, "duration": 0.0, "text": "visualization here. What I can actually do<00:17:29.000> is<00:17:29.360> uh" }, { "start": 1049.99, "duration": 0.0, "text": "do is uh" }, { "start": 1050.0, "duration": 0.0, "text": "do is uh use<00:17:30.520> uh<00:17:30.760> a<00:17:30.840> view<00:17:31.480> as" }, { "start": 1052.39, "duration": 0.0, "text": "use uh a view as" }, { "start": 1052.4, "duration": 0.0, "text": "use uh a view as in<00:17:32.760> in<00:17:33.000> the<00:17:33.200> Rad<00:17:33.360> Debugger's<00:17:33.720> parlance." }, { "start": 1055.11, "duration": 0.0, "text": "in in the Rad Debugger's parlance." }, { "start": 1055.12, "duration": 0.0, "text": "in in the Rad Debugger's parlance. And<00:17:35.240> I<00:17:35.320> can<00:17:35.440> just<00:17:35.560> say,<00:17:35.720> \"Hey,<00:17:35.880> I<00:17:35.960> want<00:17:36.120> to" }, { "start": 1056.19, "duration": 0.0, "text": "And I can just say, \"Hey, I want to" }, { "start": 1056.2, "duration": 0.0, "text": "And I can just say, \"Hey, I want to visualize<00:17:36.560> this<00:17:36.680> as<00:17:36.840> text.\"" }, { "start": 1058.19, "duration": 0.0, "text": "visualize this as text.\"" }, { "start": 1058.2, "duration": 0.0, "text": "visualize this as text.\" Um<00:17:38.360> and<00:17:38.480> here<00:17:38.680> I<00:17:38.720> can<00:17:38.880> put<00:17:39.040> in<00:17:39.160> a<00:17:39.200> bunch<00:17:39.400> of" }, { "start": 1059.43, "duration": 0.0, "text": "Um and here I can put in a bunch of" }, { "start": 1059.44, "duration": 0.0, "text": "Um and here I can put in a bunch of different<00:17:39.680> parameters.<00:17:40.120> So,<00:17:40.200> the<00:17:40.280> first" }, { "start": 1060.51, "duration": 0.0, "text": "different parameters. So, the first" }, { "start": 1060.52, "duration": 0.0, "text": "different parameters. So, the first thing<00:17:40.640> is<00:17:40.760> just<00:17:40.920> the<00:17:41.000> expression<00:17:41.600> to<00:17:41.720> describe" }, { "start": 1062.75, "duration": 0.0, "text": "thing is just the expression to describe" }, { "start": 1062.76, "duration": 0.0, "text": "thing is just the expression to describe whatever<00:17:43.120> text<00:17:43.840> I<00:17:43.960> would<00:17:44.120> like<00:17:44.440> like<00:17:44.640> whatever" }, { "start": 1064.95, "duration": 0.0, "text": "whatever text I would like like whatever" }, { "start": 1064.96, "duration": 0.0, "text": "whatever text I would like like whatever expression<00:17:45.480> that<00:17:45.600> will<00:17:45.760> refer<00:17:46.120> me<00:17:46.320> to<00:17:46.480> the" }, { "start": 1066.55, "duration": 0.0, "text": "expression that will refer me to the" }, { "start": 1066.56, "duration": 0.0, "text": "expression that will refer me to the text<00:17:46.800> that<00:17:46.920> I<00:17:46.960> want<00:17:47.200> to<00:17:47.240> visualize.<00:17:47.760> Like<00:17:47.920> to" }, { "start": 1068.03, "duration": 0.0, "text": "text that I want to visualize. Like to" }, { "start": 1068.04, "duration": 0.0, "text": "text that I want to visualize. Like to the<00:17:48.120> data<00:17:48.400> that<00:17:48.520> I<00:17:48.560> want<00:17:48.680> to<00:17:48.760> visualize<00:17:49.040> as" }, { "start": 1069.15, "duration": 0.0, "text": "the data that I want to visualize as" }, { "start": 1069.16, "duration": 0.0, "text": "the data that I want to visualize as text.<00:17:49.960> I<00:17:50.000> put<00:17:50.200> that<00:17:50.360> here.<00:17:51.120> Um<00:17:51.320> I<00:17:51.360> can<00:17:51.480> also" }, { "start": 1071.71, "duration": 0.0, "text": "text. I put that here. Um I can also" }, { "start": 1071.72, "duration": 0.0, "text": "text. I put that here. Um I can also supply<00:17:52.040> like<00:17:52.240> a<00:17:52.320> language.<00:17:53.160> So,<00:17:54.080> I<00:17:54.160> mean,<00:17:54.400> I" }, { "start": 1074.43, "duration": 0.0, "text": "supply like a language. So, I mean, I" }, { "start": 1074.44, "duration": 0.0, "text": "supply like a language. So, I mean, I don't<00:17:54.600> know<00:17:54.720> why<00:17:54.920> I<00:17:54.960> would<00:17:55.080> do<00:17:55.240> that<00:17:55.400> for<00:17:55.520> this" }, { "start": 1075.71, "duration": 0.0, "text": "don't know why I would do that for this" }, { "start": 1075.72, "duration": 0.0, "text": "don't know why I would do that for this longer<00:17:56.000> text<00:17:56.280> thing.<00:17:56.520> So,<00:17:56.880> you<00:17:56.960> know,<00:17:57.200> but" }, { "start": 1077.63, "duration": 0.0, "text": "longer text thing. So, you know, but" }, { "start": 1077.64, "duration": 0.0, "text": "longer text thing. So, you know, but this<00:17:57.840> is<00:17:57.920> optional.<00:17:58.880> Um<00:17:59.360> which<00:17:59.520> it<00:17:59.600> doesn't" }, { "start": 1079.83, "duration": 0.0, "text": "this is optional. Um which it doesn't" }, { "start": 1079.84, "duration": 0.0, "text": "this is optional. Um which it doesn't say<00:17:59.960> it's<00:18:00.120> optional.<00:18:00.640> It<00:18:00.760> should,<00:18:01.000> but" }, { "start": 1081.67, "duration": 0.0, "text": "say it's optional. It should, but" }, { "start": 1081.68, "duration": 0.0, "text": "say it's optional. It should, but whatever.<00:18:02.200> And<00:18:02.280> then<00:18:02.360> I<00:18:02.400> can<00:18:02.520> also<00:18:02.960> determine" }, { "start": 1083.31, "duration": 0.0, "text": "whatever. And then I can also determine" }, { "start": 1083.32, "duration": 0.0, "text": "whatever. And then I can also determine whether<00:18:03.880> or<00:18:04.000> not<00:18:04.200> line<00:18:04.360> numbers<00:18:04.640> are<00:18:04.720> shown." }, { "start": 1086.43, "duration": 0.0, "text": "whether or not line numbers are shown." }, { "start": 1086.44, "duration": 0.0, "text": "whether or not line numbers are shown. But<00:18:06.560> okay,<00:18:06.760> like<00:18:06.960> let<00:18:07.080> me<00:18:07.160> just<00:18:07.600> let<00:18:07.680> me<00:18:07.760> just" }, { "start": 1087.91, "duration": 0.0, "text": "But okay, like let me just let me just" }, { "start": 1087.92, "duration": 0.0, "text": "But okay, like let me just let me just do<00:18:08.600> just<00:18:09.000> text<00:18:10.040> uh<00:18:10.200> the<00:18:10.320> text<00:18:10.600> view<00:18:10.920> of<00:18:11.120> this" }, { "start": 1091.27, "duration": 0.0, "text": "do just text uh the text view of this" }, { "start": 1091.28, "duration": 0.0, "text": "do just text uh the text view of this longer<00:18:11.600> text<00:18:11.840> expression.<00:18:12.560> If<00:18:12.680> I<00:18:12.720> expand" }, { "start": 1093.11, "duration": 0.0, "text": "longer text expression. If I expand" }, { "start": 1093.12, "duration": 0.0, "text": "longer text expression. If I expand this,<00:18:13.320> then<00:18:13.560> I<00:18:13.600> actually<00:18:13.920> get<00:18:14.800> uh<00:18:15.000> like<00:18:15.200> a" }, { "start": 1095.23, "duration": 0.0, "text": "this, then I actually get uh like a" }, { "start": 1095.24, "duration": 0.0, "text": "this, then I actually get uh like a multi-line<00:18:16.040> string<00:18:16.360> view<00:18:16.920> right<00:18:17.120> here." }, { "start": 1098.43, "duration": 0.0, "text": "multi-line string view right here." }, { "start": 1098.44, "duration": 0.0, "text": "multi-line string view right here. Um" }, { "start": 1099.79, "duration": 0.0, "text": "Um" }, { "start": 1099.8, "duration": 0.0, "text": "Um and<00:18:20.160> there's<00:18:20.320> actually<00:18:20.560> this<00:18:20.680> option<00:18:21.200> uh<00:18:21.400> to" }, { "start": 1101.55, "duration": 0.0, "text": "and there's actually this option uh to" }, { "start": 1101.56, "duration": 0.0, "text": "and there's actually this option uh to pull<00:18:21.800> this<00:18:21.960> out<00:18:22.080> as<00:18:22.200> a<00:18:22.240> new<00:18:22.400> tab.<00:18:22.640> So,<00:18:22.760> if<00:18:22.800> I" }, { "start": 1102.87, "duration": 0.0, "text": "pull this out as a new tab. So, if I" }, { "start": 1102.88, "duration": 0.0, "text": "pull this out as a new tab. So, if I click<00:18:23.080> and<00:18:23.160> drag<00:18:23.480> that,<00:18:23.880> I<00:18:23.960> can<00:18:24.160> create<00:18:24.520> a<00:18:24.600> tab" }, { "start": 1105.47, "duration": 0.0, "text": "click and drag that, I can create a tab" }, { "start": 1105.48, "duration": 0.0, "text": "click and drag that, I can create a tab uh<00:18:25.680> where<00:18:26.120> I<00:18:26.200> just<00:18:26.440> see,<00:18:26.760> \"Hey,<00:18:27.000> here's<00:18:27.520> here's" }, { "start": 1107.79, "duration": 0.0, "text": "uh where I just see, \"Hey, here's here's" }, { "start": 1107.8, "duration": 0.0, "text": "uh where I just see, \"Hey, here's here's the<00:18:27.880> text<00:18:28.240> data<00:18:29.040> visualized<00:18:29.480> as<00:18:29.600> text.\"<00:18:29.960> Now," }, { "start": 1110.11, "duration": 0.0, "text": "the text data visualized as text.\" Now," }, { "start": 1110.12, "duration": 0.0, "text": "the text data visualized as text.\" Now, you<00:18:30.240> may<00:18:30.360> be<00:18:30.520> wondering," }, { "start": 1112.71, "duration": 0.0, "text": "you may be wondering," }, { "start": 1112.72, "duration": 0.0, "text": "you may be wondering, \"Hey,<00:18:32.920> this<00:18:33.520> this<00:18:33.800> tab<00:18:34.360> UI<00:18:34.800> sure<00:18:35.120> looks<00:18:35.360> a<00:18:35.400> lot" }, { "start": 1115.91, "duration": 0.0, "text": "\"Hey, this this tab UI sure looks a lot" }, { "start": 1115.92, "duration": 0.0, "text": "\"Hey, this this tab UI sure looks a lot like<00:18:36.360> this<00:18:36.640> tab's<00:18:37.120> UI.\"<00:18:37.680> Like<00:18:37.960> if<00:18:38.120> we<00:18:38.240> look<00:18:38.440> at" }, { "start": 1118.51, "duration": 0.0, "text": "like this tab's UI.\" Like if we look at" }, { "start": 1118.52, "duration": 0.0, "text": "like this tab's UI.\" Like if we look at these<00:18:38.760> two<00:18:38.880> things<00:18:39.120> There's<00:18:39.280> a<00:18:39.320> couple<00:18:39.560> of" }, { "start": 1119.63, "duration": 0.0, "text": "these two things There's a couple of" }, { "start": 1119.64, "duration": 0.0, "text": "these two things There's a couple of differences.<00:18:40.040> Like<00:18:40.200> I<00:18:40.240> can't<00:18:40.520> seem<00:18:40.640> to<00:18:40.720> put" }, { "start": 1120.87, "duration": 0.0, "text": "differences. Like I can't seem to put" }, { "start": 1120.88, "duration": 0.0, "text": "differences. Like I can't seem to put breakpoints<00:18:41.440> here,<00:18:41.680> which<00:18:42.240> would<00:18:42.360> kind<00:18:42.520> of" }, { "start": 1122.55, "duration": 0.0, "text": "breakpoints here, which would kind of" }, { "start": 1122.56, "duration": 0.0, "text": "breakpoints here, which would kind of make<00:18:42.720> sense,<00:18:43.000> right?<00:18:43.160> Because<00:18:43.480> like<00:18:43.600> there's" }, { "start": 1124.79, "duration": 0.0, "text": "make sense, right? Because like there's" }, { "start": 1124.8, "duration": 0.0, "text": "make sense, right? Because like there's like<00:18:44.960> this<00:18:45.080> is<00:18:45.200> not<00:18:45.400> code.<00:18:45.840> Like<00:18:45.960> there's<00:18:46.160> no" }, { "start": 1126.59, "duration": 0.0, "text": "like this is not code. Like there's no" }, { "start": 1126.6, "duration": 0.0, "text": "like this is not code. Like there's no there's<00:18:46.720> no<00:18:47.080> This<00:18:47.240> was<00:18:47.360> not<00:18:47.480> compiled<00:18:47.960> to" }, { "start": 1127.99, "duration": 0.0, "text": "there's no This was not compiled to" }, { "start": 1128.0, "duration": 0.0, "text": "there's no This was not compiled to produce<00:18:48.240> instructions.<00:18:48.800> Like<00:18:48.920> none<00:18:49.040> of<00:18:49.120> that" }, { "start": 1129.23, "duration": 0.0, "text": "produce instructions. Like none of that" }, { "start": 1129.24, "duration": 0.0, "text": "produce instructions. Like none of that would<00:18:49.360> make<00:18:49.480> sense.<00:18:49.760> But,<00:18:50.600> um<00:18:50.920> we<00:18:51.000> have<00:18:51.160> line" }, { "start": 1131.35, "duration": 0.0, "text": "would make sense. But, um we have line" }, { "start": 1131.36, "duration": 0.0, "text": "would make sense. But, um we have line numbers.<00:18:51.800> We<00:18:51.840> have<00:18:52.000> line<00:18:52.200> numbers.<00:18:52.640> I<00:18:52.680> can" }, { "start": 1132.79, "duration": 0.0, "text": "numbers. We have line numbers. I can" }, { "start": 1132.8, "duration": 0.0, "text": "numbers. We have line numbers. I can click<00:18:53.000> and<00:18:53.080> drag.<00:18:53.680> I<00:18:53.760> can<00:18:54.320> uh<00:18:54.560> I<00:18:54.640> can<00:18:54.760> copy<00:18:55.080> and" }, { "start": 1135.19, "duration": 0.0, "text": "click and drag. I can uh I can copy and" }, { "start": 1135.2, "duration": 0.0, "text": "click and drag. I can uh I can copy and paste<00:18:55.560> like<00:18:55.760> what<00:18:56.000> ways<00:18:56.280> might<00:18:56.440> it<00:18:56.520> be" }, { "start": 1136.63, "duration": 0.0, "text": "paste like what ways might it be" }, { "start": 1136.64, "duration": 0.0, "text": "paste like what ways might it be rendered.<00:18:57.000> I<00:18:57.080> can<00:18:57.200> put<00:18:57.400> you<00:18:57.480> know,<00:18:57.560> put<00:18:57.720> that" }, { "start": 1137.91, "duration": 0.0, "text": "rendered. I can put you know, put that" }, { "start": 1137.92, "duration": 0.0, "text": "rendered. I can put you know, put that there,<00:18:58.080> whatever." }, { "start": 1139.67, "duration": 0.0, "text": "there, whatever." }, { "start": 1139.68, "duration": 0.0, "text": "there, whatever. And<00:19:00.000> the<00:19:00.120> short<00:19:00.480> story<00:19:00.840> is<00:19:00.960> that<00:19:01.080> these" }, { "start": 1141.23, "duration": 0.0, "text": "And the short story is that these" }, { "start": 1141.24, "duration": 0.0, "text": "And the short story is that these actually<00:19:01.520> are<00:19:01.600> the<00:19:01.720> same<00:19:01.960> UI." }, { "start": 1143.55, "duration": 0.0, "text": "actually are the same UI." }, { "start": 1143.56, "duration": 0.0, "text": "actually are the same UI. This<00:19:03.880> is<00:19:04.000> a<00:19:04.040> text<00:19:04.440> tab<00:19:04.960> um<00:19:05.200> and<00:19:05.360> this<00:19:05.520> is" }, { "start": 1145.59, "duration": 0.0, "text": "This is a text tab um and this is" }, { "start": 1145.6, "duration": 0.0, "text": "This is a text tab um and this is evaluating<00:19:06.120> longer<00:19:06.440> text,<00:19:06.880> which<00:19:07.200> should<00:19:07.400> be" }, { "start": 1147.63, "duration": 0.0, "text": "evaluating longer text, which should be" }, { "start": 1147.64, "duration": 0.0, "text": "evaluating longer text, which should be pretty<00:19:07.880> self-explanatory.<00:19:09.200> Um<00:19:09.400> and<00:19:09.480> then" }, { "start": 1149.67, "duration": 0.0, "text": "pretty self-explanatory. Um and then" }, { "start": 1149.68, "duration": 0.0, "text": "pretty self-explanatory. Um and then this<00:19:09.920> one" }, { "start": 1151.03, "duration": 0.0, "text": "this one" }, { "start": 1151.04, "duration": 0.0, "text": "this one um" }, { "start": 1152.19, "duration": 0.0, "text": "um" }, { "start": 1152.2, "duration": 0.0, "text": "um this<00:19:12.480> one<00:19:12.640> is<00:19:12.760> actually<00:19:13.520> evaluating<00:19:14.400> this" }, { "start": 1154.63, "duration": 0.0, "text": "this one is actually evaluating this" }, { "start": 1154.64, "duration": 0.0, "text": "this one is actually evaluating this expression,<00:19:15.360> which<00:19:15.520> is<00:19:15.720> file<00:19:16.120> colon" }, { "start": 1157.35, "duration": 0.0, "text": "expression, which is file colon" }, { "start": 1157.36, "duration": 0.0, "text": "expression, which is file colon uh<00:19:17.480> another<00:19:17.720> one<00:19:17.800> of<00:19:17.880> those<00:19:18.000> disambiguators," }, { "start": 1158.99, "duration": 0.0, "text": "uh another one of those disambiguators," }, { "start": 1159.0, "duration": 0.0, "text": "uh another one of those disambiguators, uh<00:19:19.160> C<00:19:19.760> devel<00:19:20.240> rad<00:19:20.440> bugger<00:19:20.680> source<00:19:21.000> mule<00:19:21.320> mule" }, { "start": 1161.51, "duration": 0.0, "text": "uh C devel rad bugger source mule mule" }, { "start": 1161.52, "duration": 0.0, "text": "uh C devel rad bugger source mule mule main.cpp.data." }, { "start": 1164.19, "duration": 0.0, "text": "main.cpp.data." }, { "start": 1164.2, "duration": 0.0, "text": "main.cpp.data. Um<00:19:24.360> and<00:19:24.440> you<00:19:24.520> can<00:19:24.600> see<00:19:24.720> some<00:19:24.880> of<00:19:24.920> the<00:19:25.000> members" }, { "start": 1165.39, "duration": 0.0, "text": "Um and you can see some of the members" }, { "start": 1165.4, "duration": 0.0, "text": "Um and you can see some of the members here<00:19:25.600> that<00:19:25.720> you<00:19:25.800> can<00:19:25.880> evaluate<00:19:26.480> for<00:19:26.640> any<00:19:26.800> file." }, { "start": 1167.79, "duration": 0.0, "text": "here that you can evaluate for any file." }, { "start": 1167.8, "duration": 0.0, "text": "here that you can evaluate for any file. But<00:19:27.880> anyways,<00:19:28.120> so<00:19:28.200> that's<00:19:28.400> just<00:19:28.520> evaluating" }, { "start": 1168.99, "duration": 0.0, "text": "But anyways, so that's just evaluating" }, { "start": 1169.0, "duration": 0.0, "text": "But anyways, so that's just evaluating the<00:19:29.080> file.<00:19:30.120> Um" }, { "start": 1171.03, "duration": 0.0, "text": "the file. Um" }, { "start": 1171.04, "duration": 0.0, "text": "the file. Um so<00:19:31.160> that's<00:19:31.480> kind<00:19:31.720> of<00:19:32.040> that's<00:19:32.200> kind<00:19:32.320> of" }, { "start": 1172.35, "duration": 0.0, "text": "so that's kind of that's kind of" }, { "start": 1172.36, "duration": 0.0, "text": "so that's kind of that's kind of interesting.<00:19:33.360> Um" }, { "start": 1174.03, "duration": 0.0, "text": "interesting. Um" }, { "start": 1174.04, "duration": 0.0, "text": "interesting. Um and<00:19:34.160> the<00:19:34.240> long<00:19:34.480> story<00:19:34.720> short<00:19:34.880> is<00:19:34.960> that<00:19:35.120> all" }, { "start": 1175.23, "duration": 0.0, "text": "and the long story short is that all" }, { "start": 1175.24, "duration": 0.0, "text": "and the long story short is that all these<00:19:35.440> visualizers<00:19:36.040> can<00:19:36.160> apply<00:19:36.560> to<00:19:36.800> both" }, { "start": 1178.11, "duration": 0.0, "text": "these visualizers can apply to both" }, { "start": 1178.12, "duration": 0.0, "text": "these visualizers can apply to both files,<00:19:38.520> they<00:19:38.600> can<00:19:38.720> apply<00:19:39.000> to<00:19:39.160> memory<00:19:39.520> from" }, { "start": 1179.67, "duration": 0.0, "text": "files, they can apply to memory from" }, { "start": 1179.68, "duration": 0.0, "text": "files, they can apply to memory from processes,<00:19:40.560> doesn't<00:19:40.840> matter." }, { "start": 1181.91, "duration": 0.0, "text": "processes, doesn't matter." }, { "start": 1181.92, "duration": 0.0, "text": "processes, doesn't matter. You<00:19:41.960> can<00:19:42.360> wherever<00:19:42.760> the<00:19:42.840> debugger<00:19:43.160> can<00:19:43.280> find" }, { "start": 1183.51, "duration": 0.0, "text": "You can wherever the debugger can find" }, { "start": 1183.52, "duration": 0.0, "text": "You can wherever the debugger can find data,<00:19:43.760> you<00:19:43.840> can<00:19:43.960> plug<00:19:44.160> them<00:19:44.320> into<00:19:44.480> these" }, { "start": 1184.63, "duration": 0.0, "text": "data, you can plug them into these" }, { "start": 1184.64, "duration": 0.0, "text": "data, you can plug them into these visualizers.<00:19:45.320> So,<00:19:45.760> to<00:19:45.880> demonstrate<00:19:46.360> that," }, { "start": 1187.43, "duration": 0.0, "text": "visualizers. So, to demonstrate that," }, { "start": 1187.44, "duration": 0.0, "text": "visualizers. So, to demonstrate that, let<00:19:47.520> me<00:19:47.600> show<00:19:47.720> another<00:19:48.240> debugger<00:19:48.520> visualizer." }, { "start": 1189.03, "duration": 0.0, "text": "let me show another debugger visualizer." }, { "start": 1189.04, "duration": 0.0, "text": "let me show another debugger visualizer. This<00:19:49.200> is<00:19:49.760> This<00:19:49.920> is<00:19:50.040> another<00:19:50.320> common<00:19:50.640> one.<00:19:50.880> So," }, { "start": 1190.99, "duration": 0.0, "text": "This is This is another common one. So," }, { "start": 1191.0, "duration": 0.0, "text": "This is This is another common one. So, if<00:19:51.120> we<00:19:51.240> have<00:19:52.040> basics,<00:19:52.760> this<00:19:53.080> structure," }, { "start": 1194.39, "duration": 0.0, "text": "if we have basics, this structure," }, { "start": 1194.4, "duration": 0.0, "text": "if we have basics, this structure, um" }, { "start": 1195.51, "duration": 0.0, "text": "um" }, { "start": 1195.52, "duration": 0.0, "text": "um let<00:19:55.560> me<00:19:55.680> open<00:19:55.840> up<00:19:55.960> the<00:19:56.040> memory<00:19:56.440> view,<00:19:56.840> which" }, { "start": 1197.03, "duration": 0.0, "text": "let me open up the memory view, which" }, { "start": 1197.04, "duration": 0.0, "text": "let me open up the memory view, which this<00:19:57.280> you'll<00:19:57.440> find<00:19:57.800> something<00:19:58.080> like<00:19:58.280> this<00:19:58.440> in" }, { "start": 1198.51, "duration": 0.0, "text": "this you'll find something like this in" }, { "start": 1198.52, "duration": 0.0, "text": "this you'll find something like this in Visual<00:19:58.760> Studio<00:19:59.320> and<00:19:59.560> in<00:19:59.680> lots<00:19:59.880> of<00:19:59.960> other" }, { "start": 1200.11, "duration": 0.0, "text": "Visual Studio and in lots of other" }, { "start": 1200.12, "duration": 0.0, "text": "Visual Studio and in lots of other debuggers." }, { "start": 1201.79, "duration": 0.0, "text": "debuggers." }, { "start": 1201.8, "duration": 0.0, "text": "debuggers. And<00:20:01.920> let<00:20:02.000> me<00:20:02.080> just<00:20:02.280> go<00:20:02.520> to<00:20:02.680> the<00:20:02.800> basics" }, { "start": 1203.91, "duration": 0.0, "text": "And let me just go to the basics" }, { "start": 1203.92, "duration": 0.0, "text": "And let me just go to the basics variable<00:20:04.320> here." }, { "start": 1206.39, "duration": 0.0, "text": "variable here." }, { "start": 1206.4, "duration": 0.0, "text": "variable here. Um<00:20:06.920> so,<00:20:07.080> here<00:20:07.400> is<00:20:07.560> where<00:20:08.160> uh<00:20:08.400> I<00:20:08.480> can<00:20:08.640> see<00:20:08.920> like" }, { "start": 1209.51, "duration": 0.0, "text": "Um so, here is where uh I can see like" }, { "start": 1209.52, "duration": 0.0, "text": "Um so, here is where uh I can see like uh<00:20:09.960> all<00:20:10.200> of<00:20:10.280> the<00:20:10.360> memory,<00:20:10.760> like<00:20:10.960> the<00:20:11.080> actual" }, { "start": 1211.35, "duration": 0.0, "text": "uh all of the memory, like the actual" }, { "start": 1211.36, "duration": 0.0, "text": "uh all of the memory, like the actual bytes" }, { "start": 1212.63, "duration": 0.0, "text": "bytes" }, { "start": 1212.64, "duration": 0.0, "text": "bytes that<00:20:12.720> are<00:20:12.840> used<00:20:13.160> to<00:20:13.400> to<00:20:13.880> encode<00:20:14.400> the<00:20:14.480> value<00:20:14.960> of" }, { "start": 1215.07, "duration": 0.0, "text": "that are used to to encode the value of" }, { "start": 1215.08, "duration": 0.0, "text": "that are used to to encode the value of this<00:20:15.240> basics<00:20:15.760> structure.<00:20:16.200> So,<00:20:16.320> we<00:20:16.400> can<00:20:16.520> see" }, { "start": 1216.63, "duration": 0.0, "text": "this basics structure. So, we can see" }, { "start": 1216.64, "duration": 0.0, "text": "this basics structure. So, we can see like<00:20:16.880> for<00:20:17.000> example,<00:20:17.880> um" }, { "start": 1218.71, "duration": 0.0, "text": "like for example, um" }, { "start": 1218.72, "duration": 0.0, "text": "like for example, um and<00:20:18.800> actually,<00:20:19.120> if<00:20:19.280> I" }, { "start": 1220.03, "duration": 0.0, "text": "and actually, if I" }, { "start": 1220.04, "duration": 0.0, "text": "and actually, if I uh" }, { "start": 1221.11, "duration": 0.0, "text": "uh" }, { "start": 1221.12, "duration": 0.0, "text": "uh you<00:20:21.200> can<00:20:21.320> see<00:20:21.480> that<00:20:21.680> there's<00:20:22.080> some" }, { "start": 1222.31, "duration": 0.0, "text": "you can see that there's some" }, { "start": 1222.32, "duration": 0.0, "text": "you can see that there's some visualization<00:20:22.840> features<00:20:23.080> in<00:20:23.160> the<00:20:23.200> debugger" }, { "start": 1223.55, "duration": 0.0, "text": "visualization features in the debugger" }, { "start": 1223.56, "duration": 0.0, "text": "visualization features in the debugger that<00:20:23.800> that<00:20:23.960> help<00:20:24.160> you<00:20:24.280> correlate<00:20:24.840> this<00:20:25.000> stuff." }, { "start": 1225.19, "duration": 0.0, "text": "that that help you correlate this stuff." }, { "start": 1225.2, "duration": 0.0, "text": "that that help you correlate this stuff. So,<00:20:25.320> if<00:20:25.400> I<00:20:25.480> hover<00:20:25.720> basics.a,<00:20:26.560> for<00:20:26.720> example," }, { "start": 1227.51, "duration": 0.0, "text": "So, if I hover basics.a, for example," }, { "start": 1227.52, "duration": 0.0, "text": "So, if I hover basics.a, for example, you<00:20:27.600> can<00:20:27.760> see<00:20:27.880> that<00:20:28.080> this<00:20:28.240> byte<00:20:28.440> gets" }, { "start": 1228.63, "duration": 0.0, "text": "you can see that this byte gets" }, { "start": 1228.64, "duration": 0.0, "text": "you can see that this byte gets highlighted.<00:20:29.160> And<00:20:29.280> vice<00:20:29.520> versa,<00:20:29.840> if<00:20:29.960> I<00:20:30.040> hover" }, { "start": 1230.31, "duration": 0.0, "text": "highlighted. And vice versa, if I hover" }, { "start": 1230.32, "duration": 0.0, "text": "highlighted. And vice versa, if I hover the<00:20:30.400> byte<00:20:30.640> here,<00:20:30.840> I<00:20:30.880> can<00:20:31.040> see" }, { "start": 1232.07, "duration": 0.0, "text": "the byte here, I can see" }, { "start": 1232.08, "duration": 0.0, "text": "the byte here, I can see the<00:20:32.120> member<00:20:32.520> that<00:20:32.920> that<00:20:33.120> byte<00:20:33.320> belong<00:20:33.640> that" }, { "start": 1234.19, "duration": 0.0, "text": "the member that that byte belong that" }, { "start": 1234.2, "duration": 0.0, "text": "the member that that byte belong that that<00:20:34.680> byte<00:20:34.960> falls<00:20:35.240> into<00:20:35.480> basically<00:20:35.960> in" }, { "start": 1236.07, "duration": 0.0, "text": "that byte falls into basically in" }, { "start": 1236.08, "duration": 0.0, "text": "that byte falls into basically in the<00:20:36.160> watch<00:20:36.400> window.<00:20:36.640> So,<00:20:37.400> um" }, { "start": 1238.19, "duration": 0.0, "text": "the watch window. So, um" }, { "start": 1238.2, "duration": 0.0, "text": "the watch window. So, um instead<00:20:38.440> of<00:20:38.520> doing<00:20:39.400> just<00:20:39.560> because<00:20:39.880> uh<00:20:40.240> I've" }, { "start": 1240.35, "duration": 0.0, "text": "instead of doing just because uh I've" }, { "start": 1240.36, "duration": 0.0, "text": "instead of doing just because uh I've got<00:20:40.480> my<00:20:40.600> font<00:20:40.840> size<00:20:41.080> turned<00:20:41.280> up<00:20:41.360> so<00:20:41.480> high,<00:20:41.600> let" }, { "start": 1241.71, "duration": 0.0, "text": "got my font size turned up so high, let" }, { "start": 1241.72, "duration": 0.0, "text": "got my font size turned up so high, let me<00:20:41.840> also<00:20:42.040> just<00:20:42.240> do<00:20:42.440> um" }, { "start": 1244.15, "duration": 0.0, "text": "me also just do um" }, { "start": 1244.16, "duration": 0.0, "text": "me also just do um let<00:20:44.240> me<00:20:44.320> just<00:20:44.720> do<00:20:44.960> two<00:20:45.160> panel,<00:20:45.640> one<00:20:45.800> with<00:20:45.920> the" }, { "start": 1246.03, "duration": 0.0, "text": "let me just do two panel, one with the" }, { "start": 1246.04, "duration": 0.0, "text": "let me just do two panel, one with the watch<00:20:46.280> window," }, { "start": 1248.39, "duration": 0.0, "text": "watch window," }, { "start": 1248.4, "duration": 0.0, "text": "watch window, and<00:20:48.560> one<00:20:48.720> with<00:20:49.080> the<00:20:49.480> memory<00:20:49.760> view." }, { "start": 1251.27, "duration": 0.0, "text": "and one with the memory view." }, { "start": 1251.28, "duration": 0.0, "text": "and one with the memory view. Um" }, { "start": 1252.35, "duration": 0.0, "text": "Um" }, { "start": 1252.36, "duration": 0.0, "text": "Um so,<00:20:52.560> like<00:20:52.720> here's<00:20:52.920> a<00:20:52.960> memory<00:20:53.280> view.<00:20:53.520> I<00:20:53.600> can<00:20:53.920> I" }, { "start": 1253.99, "duration": 0.0, "text": "so, like here's a memory view. I can I" }, { "start": 1254.0, "duration": 0.0, "text": "so, like here's a memory view. I can I can,<00:20:54.600> you<00:20:54.680> know,<00:20:54.840> hover<00:20:55.080> bytes.<00:20:55.640> Um<00:20:55.840> I<00:20:55.920> can" }, { "start": 1256.03, "duration": 0.0, "text": "can, you know, hover bytes. Um I can" }, { "start": 1256.04, "duration": 0.0, "text": "can, you know, hover bytes. Um I can even<00:20:56.280> mutate<00:20:56.680> bytes,<00:20:56.960> like<00:20:57.080> if<00:20:57.200> I<00:20:57.280> wanted<00:20:57.480> to" }, { "start": 1257.55, "duration": 0.0, "text": "even mutate bytes, like if I wanted to" }, { "start": 1257.56, "duration": 0.0, "text": "even mutate bytes, like if I wanted to do" }, { "start": 1258.55, "duration": 0.0, "text": "do" }, { "start": 1258.56, "duration": 0.0, "text": "do uh<00:20:58.760> I<00:20:58.880> wanted<00:20:59.120> to<00:20:59.240> change<00:20:59.520> this<00:20:59.800> to<00:21:00.040> to<00:21:00.200> a<00:21:00.240> zero" }, { "start": 1260.63, "duration": 0.0, "text": "uh I wanted to change this to to a zero" }, { "start": 1260.64, "duration": 0.0, "text": "uh I wanted to change this to to a zero byte,<00:21:01.240> um" }, { "start": 1262.03, "duration": 0.0, "text": "byte, um" }, { "start": 1262.04, "duration": 0.0, "text": "byte, um I<00:21:02.120> can<00:21:02.240> just<00:21:02.400> type<00:21:02.600> that<00:21:02.800> in<00:21:02.920> there.<00:21:03.760> Uh<00:21:04.160> we<00:21:04.240> can" }, { "start": 1264.35, "duration": 0.0, "text": "I can just type that in there. Uh we can" }, { "start": 1264.36, "duration": 0.0, "text": "I can just type that in there. Uh we can go<00:21:04.440> back<00:21:04.600> to<00:21:04.680> -1<00:21:05.120> if<00:21:05.240> I<00:21:05.280> do<00:21:05.400> an<00:21:05.480> FF.<00:21:06.400> Uh<00:21:06.520> here's" }, { "start": 1266.99, "duration": 0.0, "text": "go back to -1 if I do an FF. Uh here's" }, { "start": 1267.0, "duration": 0.0, "text": "go back to -1 if I do an FF. Uh here's 01,<00:21:07.480> I<00:21:07.520> can<00:21:07.640> do<00:21:07.760> like<00:21:07.920> 23,<00:21:08.960> which<00:21:09.480> uh<00:21:09.560> hex<00:21:09.840> 23" }, { "start": 1270.19, "duration": 0.0, "text": "01, I can do like 23, which uh hex 23" }, { "start": 1270.2, "duration": 0.0, "text": "01, I can do like 23, which uh hex 23 turns<00:21:10.440> into<00:21:10.600> 35,<00:21:11.320> which<00:21:11.600> happens<00:21:11.880> to<00:21:11.920> be<00:21:12.040> that" }, { "start": 1272.23, "duration": 0.0, "text": "turns into 35, which happens to be that" }, { "start": 1272.24, "duration": 0.0, "text": "turns into 35, which happens to be that character." }, { "start": 1273.43, "duration": 0.0, "text": "character." }, { "start": 1273.44, "duration": 0.0, "text": "character. Um" }, { "start": 1274.87, "duration": 0.0, "text": "Um" }, { "start": 1274.88, "duration": 0.0, "text": "Um So<00:21:15.000> yeah,<00:21:15.080> anyways,<00:21:15.400> here's<00:21:15.600> a<00:21:15.640> memory<00:21:15.920> view," }, { "start": 1276.11, "duration": 0.0, "text": "So yeah, anyways, here's a memory view," }, { "start": 1276.12, "duration": 0.0, "text": "So yeah, anyways, here's a memory view, right?" }, { "start": 1277.59, "duration": 0.0, "text": "right?" }, { "start": 1277.6, "duration": 0.0, "text": "right? And<00:21:17.760> I<00:21:17.800> can<00:21:17.920> dig<00:21:18.080> into<00:21:18.240> more<00:21:18.400> of<00:21:18.480> these" }, { "start": 1278.63, "duration": 0.0, "text": "And I can dig into more of these" }, { "start": 1278.64, "duration": 0.0, "text": "And I can dig into more of these features<00:21:19.600> if<00:21:20.200> you<00:21:20.280> know,<00:21:20.880> as<00:21:21.080> we<00:21:21.200> want<00:21:21.440> to." }, { "start": 1282.19, "duration": 0.0, "text": "features if you know, as we want to." }, { "start": 1282.2, "duration": 0.0, "text": "features if you know, as we want to. But<00:21:22.560> it's<00:21:22.720> like<00:21:22.960> I<00:21:23.040> just<00:21:23.240> told<00:21:23.480> you<00:21:23.560> that<00:21:23.760> I<00:21:23.800> can" }, { "start": 1283.91, "duration": 0.0, "text": "But it's like I just told you that I can" }, { "start": 1283.92, "duration": 0.0, "text": "But it's like I just told you that I can apply<00:21:24.240> these<00:21:24.440> visualizers<00:21:24.960> to<00:21:25.120> any" }, { "start": 1285.35, "duration": 0.0, "text": "apply these visualizers to any" }, { "start": 1285.36, "duration": 0.0, "text": "apply these visualizers to any expression,<00:21:26.120> right?<00:21:26.434> [clears throat]<00:21:26.800> In" }, { "start": 1286.95, "duration": 0.0, "text": "expression, right? [clears throat] In" }, { "start": 1286.96, "duration": 0.0, "text": "expression, right? [clears throat] In fact,<00:21:27.280> if<00:21:27.440> I<00:21:27.520> were<00:21:27.600> to<00:21:27.720> do<00:21:27.880> something<00:21:28.200> like" }, { "start": 1288.59, "duration": 0.0, "text": "fact, if I were to do something like" }, { "start": 1288.6, "duration": 0.0, "text": "fact, if I were to do something like memory<00:21:29.640> basics" }, { "start": 1292.07, "duration": 0.0, "text": "memory basics" }, { "start": 1292.08, "duration": 0.0, "text": "memory basics Um<00:21:32.720> sorry,<00:21:32.920> there's<00:21:33.080> tons<00:21:33.320> of<00:21:33.400> parameters" }, { "start": 1293.75, "duration": 0.0, "text": "Um sorry, there's tons of parameters" }, { "start": 1293.76, "duration": 0.0, "text": "Um sorry, there's tons of parameters here.<00:21:33.840> I<00:21:33.880> actually<00:21:34.160> fixed<00:21:34.480> this,<00:21:34.720> but<00:21:35.200> but<00:21:35.520> the" }, { "start": 1295.99, "duration": 0.0, "text": "here. I actually fixed this, but but the" }, { "start": 1296.0, "duration": 0.0, "text": "here. I actually fixed this, but but the stable<00:21:36.360> version<00:21:36.600> of<00:21:36.640> the<00:21:36.720> debugger<00:21:36.960> that<00:21:37.040> I'm" }, { "start": 1297.15, "duration": 0.0, "text": "stable version of the debugger that I'm" }, { "start": 1297.16, "duration": 0.0, "text": "stable version of the debugger that I'm using<00:21:37.560> doesn't<00:21:37.840> have<00:21:38.040> that<00:21:38.320> fixed,<00:21:38.680> but<00:21:38.880> this" }, { "start": 1299.03, "duration": 0.0, "text": "using doesn't have that fixed, but this" }, { "start": 1299.04, "duration": 0.0, "text": "using doesn't have that fixed, but this is<00:21:39.280> I<00:21:39.360> mean,<00:21:39.800> technically<00:21:40.200> these<00:21:40.400> are<00:21:40.520> all" }, { "start": 1300.67, "duration": 0.0, "text": "is I mean, technically these are all" }, { "start": 1300.68, "duration": 0.0, "text": "is I mean, technically these are all options,<00:21:41.080> but<00:21:41.200> it's<00:21:41.360> just<00:21:41.640> a<00:21:41.680> little<00:21:41.880> bit" }, { "start": 1301.99, "duration": 0.0, "text": "options, but it's just a little bit" }, { "start": 1302.0, "duration": 0.0, "text": "options, but it's just a little bit absurd<00:21:42.400> to<00:21:42.720> specify<00:21:43.080> this<00:21:43.240> in<00:21:43.320> the" }, { "start": 1303.39, "duration": 0.0, "text": "absurd to specify this in the" }, { "start": 1303.4, "duration": 0.0, "text": "absurd to specify this in the expression.<00:21:43.800> But<00:21:43.960> anyways," }, { "start": 1304.91, "duration": 0.0, "text": "expression. But anyways," }, { "start": 1304.92, "duration": 0.0, "text": "expression. But anyways, if<00:21:45.040> I<00:21:45.080> do<00:21:45.240> memory<00:21:45.520> of<00:21:45.640> basics,<00:21:46.080> you'll" }, { "start": 1306.23, "duration": 0.0, "text": "if I do memory of basics, you'll" }, { "start": 1306.24, "duration": 0.0, "text": "if I do memory of basics, you'll actually<00:21:46.520> see<00:21:47.480> that<00:21:47.800> um<00:21:48.120> I<00:21:48.200> get<00:21:48.320> a<00:21:48.360> memory<00:21:48.680> view" }, { "start": 1308.91, "duration": 0.0, "text": "actually see that um I get a memory view" }, { "start": 1308.92, "duration": 0.0, "text": "actually see that um I get a memory view and<00:21:49.040> it's<00:21:49.200> just<00:21:49.480> evaluating<00:21:50.000> the<00:21:50.120> address" }, { "start": 1310.43, "duration": 0.0, "text": "and it's just evaluating the address" }, { "start": 1310.44, "duration": 0.0, "text": "and it's just evaluating the address range<00:21:51.120> supplied<00:21:51.640> by<00:21:52.600> the<00:21:52.720> expression<00:21:53.400> basics." }, { "start": 1314.19, "duration": 0.0, "text": "range supplied by the expression basics." }, { "start": 1314.2, "duration": 0.0, "text": "range supplied by the expression basics. And<00:21:54.320> so<00:21:54.400> I<00:21:54.480> just<00:21:54.760> get<00:21:54.920> a<00:21:54.960> little<00:21:55.240> memory<00:21:55.480> view" }, { "start": 1315.63, "duration": 0.0, "text": "And so I just get a little memory view" }, { "start": 1315.64, "duration": 0.0, "text": "And so I just get a little memory view for<00:21:55.760> this.<00:21:56.400> In<00:21:56.480> the<00:21:56.560> case<00:21:56.720> when<00:21:56.840> you<00:21:56.880> don't" }, { "start": 1317.03, "duration": 0.0, "text": "for this. In the case when you don't" }, { "start": 1317.04, "duration": 0.0, "text": "for this. In the case when you don't have<00:21:57.200> any<00:21:57.360> expression,<00:21:57.880> it'll<00:21:58.120> prefer<00:21:58.680> to" }, { "start": 1319.11, "duration": 0.0, "text": "have any expression, it'll prefer to" }, { "start": 1319.12, "duration": 0.0, "text": "have any expression, it'll prefer to visualize<00:21:59.560> your<00:21:59.680> current<00:22:00.040> thread's<00:22:00.640> address" }, { "start": 1320.99, "duration": 0.0, "text": "visualize your current thread's address" }, { "start": 1321.0, "duration": 0.0, "text": "visualize your current thread's address space<00:22:01.360> or<00:22:01.480> your<00:22:01.600> current<00:22:01.920> thread's<00:22:02.280> process's" }, { "start": 1322.79, "duration": 0.0, "text": "space or your current thread's process's" }, { "start": 1322.8, "duration": 0.0, "text": "space or your current thread's process's address<00:22:03.120> space.<00:22:03.720> And<00:22:03.800> then<00:22:03.920> you<00:22:04.000> can<00:22:04.120> navigate" }, { "start": 1324.55, "duration": 0.0, "text": "address space. And then you can navigate" }, { "start": 1324.56, "duration": 0.0, "text": "address space. And then you can navigate to<00:22:04.800> basics<00:22:05.360> inside<00:22:05.760> of<00:22:05.840> that<00:22:06.000> address<00:22:06.240> space," }, { "start": 1326.39, "duration": 0.0, "text": "to basics inside of that address space," }, { "start": 1326.4, "duration": 0.0, "text": "to basics inside of that address space, but<00:22:06.520> you<00:22:06.600> can<00:22:06.680> also<00:22:06.840> just<00:22:07.000> get<00:22:07.160> one<00:22:07.440> that's" }, { "start": 1327.75, "duration": 0.0, "text": "but you can also just get one that's" }, { "start": 1327.76, "duration": 0.0, "text": "but you can also just get one that's narrowed<00:22:08.120> down<00:22:08.400> to<00:22:08.520> just<00:22:08.720> basics<00:22:09.480> um" }, { "start": 1330.55, "duration": 0.0, "text": "narrowed down to just basics um" }, { "start": 1330.56, "duration": 0.0, "text": "narrowed down to just basics um uh<00:22:11.000> like<00:22:11.200> this." }, { "start": 1332.35, "duration": 0.0, "text": "uh like this." }, { "start": 1332.36, "duration": 0.0, "text": "uh like this. So<00:22:12.560> anyways,<00:22:12.880> you<00:22:12.960> can<00:22:13.120> create<00:22:13.280> a<00:22:13.320> memory<00:22:13.600> view" }, { "start": 1333.87, "duration": 0.0, "text": "So anyways, you can create a memory view" }, { "start": 1333.88, "duration": 0.0, "text": "So anyways, you can create a memory view and<00:22:14.000> you<00:22:14.120> can<00:22:14.640> um<00:22:15.000> it<00:22:15.080> can<00:22:15.200> evaluate<00:22:15.640> any<00:22:16.240> any" }, { "start": 1336.39, "duration": 0.0, "text": "and you can um it can evaluate any any" }, { "start": 1336.4, "duration": 0.0, "text": "and you can um it can evaluate any any expression,<00:22:16.880> right?<00:22:17.520> So<00:22:17.760> what<00:22:17.960> we'll<00:22:18.080> do<00:22:18.760> is" }, { "start": 1339.31, "duration": 0.0, "text": "expression, right? So what we'll do is" }, { "start": 1339.32, "duration": 0.0, "text": "expression, right? So what we'll do is um<00:22:19.360> I'm<00:22:19.480> just<00:22:19.640> going<00:22:19.760> to<00:22:19.800> take<00:22:20.080> this" }, { "start": 1340.43, "duration": 0.0, "text": "um I'm just going to take this" }, { "start": 1340.44, "duration": 0.0, "text": "um I'm just going to take this expression<00:22:20.920> that<00:22:21.160> encodes<00:22:21.560> the<00:22:21.680> file" }, { "start": 1343.75, "duration": 0.0, "text": "expression that encodes the file" }, { "start": 1343.76, "duration": 0.0, "text": "expression that encodes the file uh<00:22:23.920> the<00:22:24.040> file<00:22:24.280> that's<00:22:24.480> viewing" }, { "start": 1344.79, "duration": 0.0, "text": "uh the file that's viewing" }, { "start": 1344.8, "duration": 0.0, "text": "uh the file that's viewing mule_main.cpp." }, { "start": 1346.39, "duration": 0.0, "text": "mule_main.cpp." }, { "start": 1346.4, "duration": 0.0, "text": "mule_main.cpp. And<00:22:26.520> I'm<00:22:26.600> just<00:22:26.760> going<00:22:26.880> to<00:22:26.920> create<00:22:27.080> a<00:22:27.120> new" }, { "start": 1347.23, "duration": 0.0, "text": "And I'm just going to create a new" }, { "start": 1347.24, "duration": 0.0, "text": "And I'm just going to create a new memory<00:22:27.520> tab<00:22:27.800> or<00:22:27.880> I<00:22:27.920> guess<00:22:28.080> I<00:22:28.400> I<00:22:28.440> can<00:22:28.560> just<00:22:28.720> use" }, { "start": 1348.83, "duration": 0.0, "text": "memory tab or I guess I I can just use" }, { "start": 1348.84, "duration": 0.0, "text": "memory tab or I guess I I can just use this<00:22:29.040> one." }, { "start": 1350.03, "duration": 0.0, "text": "this one." }, { "start": 1350.04, "duration": 0.0, "text": "this one. And<00:22:30.120> let<00:22:30.200> me<00:22:30.280> just<00:22:30.440> put<00:22:30.560> this<00:22:30.760> in" }, { "start": 1351.67, "duration": 0.0, "text": "And let me just put this in" }, { "start": 1351.68, "duration": 0.0, "text": "And let me just put this in um" }, { "start": 1353.23, "duration": 0.0, "text": "um" }, { "start": 1353.24, "duration": 0.0, "text": "um as<00:22:33.520> the<00:22:33.920> expression<00:22:34.320> that<00:22:34.440> this<00:22:34.600> memory<00:22:34.920> view" }, { "start": 1355.07, "duration": 0.0, "text": "as the expression that this memory view" }, { "start": 1355.08, "duration": 0.0, "text": "as the expression that this memory view is<00:22:35.200> evaluating." }, { "start": 1356.59, "duration": 0.0, "text": "is evaluating." }, { "start": 1356.6, "duration": 0.0, "text": "is evaluating. And<00:22:36.720> you<00:22:36.800> can<00:22:36.920> see<00:22:37.320> like<00:22:37.640> here's<00:22:37.960> the<00:22:38.040> byte" }, { "start": 1358.35, "duration": 0.0, "text": "And you can see like here's the byte" }, { "start": 1358.36, "duration": 0.0, "text": "And you can see like here's the byte representation<00:22:39.080> of<00:22:39.240> that<00:22:39.440> text<00:22:39.680> file.<00:22:40.120> So<00:22:40.760> um" }, { "start": 1361.55, "duration": 0.0, "text": "representation of that text file. So um" }, { "start": 1361.56, "duration": 0.0, "text": "representation of that text file. So um like<00:22:41.720> if<00:22:41.840> we<00:22:41.920> go<00:22:42.160> up<00:22:42.280> to<00:22:42.400> the<00:22:42.480> top<00:22:42.680> of<00:22:42.720> this<00:22:42.800> text" }, { "start": 1362.95, "duration": 0.0, "text": "like if we go up to the top of this text" }, { "start": 1362.96, "duration": 0.0, "text": "like if we go up to the top of this text file,<00:22:43.160> you<00:22:43.240> can<00:22:43.360> see" }, { "start": 1364.43, "duration": 0.0, "text": "file, you can see" }, { "start": 1364.44, "duration": 0.0, "text": "file, you can see //copyrights" }, { "start": 1366.23, "duration": 0.0, "text": "//copyrights" }, { "start": 1366.24, "duration": 0.0, "text": "//copyrights uh<00:22:46.680> (c)<00:22:47.680> Epic<00:22:48.000> Games<00:22:48.280> Tools<00:22:48.640> licensed<00:22:48.960> under" }, { "start": 1369.11, "duration": 0.0, "text": "uh (c) Epic Games Tools licensed under" }, { "start": 1369.12, "duration": 0.0, "text": "uh (c) Epic Games Tools licensed under the<00:22:49.240> MIT<00:22:49.600> license.<00:22:50.480> If<00:22:50.720> I<00:22:50.840> go<00:22:51.160> to<00:22:51.760> my<00:22:52.520> uh<00:22:52.600> memory" }, { "start": 1372.83, "duration": 0.0, "text": "the MIT license. If I go to my uh memory" }, { "start": 1372.84, "duration": 0.0, "text": "the MIT license. If I go to my uh memory view<00:22:53.040> here,<00:22:53.760> you<00:22:53.840> can<00:22:53.960> see<00:22:54.360> it's<00:22:54.520> just<00:22:54.720> like," }, { "start": 1374.87, "duration": 0.0, "text": "view here, you can see it's just like," }, { "start": 1374.88, "duration": 0.0, "text": "view here, you can see it's just like, \"Hey,<00:22:55.360> //copyright<00:22:56.760> (c)<00:22:57.400> Epic<00:22:57.760> Games<00:22:58.080> Tools.\"" }, { "start": 1378.31, "duration": 0.0, "text": "\"Hey, //copyright (c) Epic Games Tools.\"" }, { "start": 1378.32, "duration": 0.0, "text": "\"Hey, //copyright (c) Epic Games Tools.\" Like<00:22:58.560> it's<00:22:58.680> just<00:22:58.880> viewing<00:22:59.240> the<00:22:59.360> same<00:22:59.640> data<00:22:59.960> as" }, { "start": 1380.19, "duration": 0.0, "text": "Like it's just viewing the same data as" }, { "start": 1380.2, "duration": 0.0, "text": "Like it's just viewing the same data as text,<00:23:00.600> right?" }, { "start": 1381.91, "duration": 0.0, "text": "text, right?" }, { "start": 1381.92, "duration": 0.0, "text": "text, right? Or<00:23:02.080> sorry,<00:23:02.360> as<00:23:02.520> memory.<00:23:02.920> As<00:23:03.080> just<00:23:03.280> raw<00:23:03.920> bytes" }, { "start": 1384.51, "duration": 0.0, "text": "Or sorry, as memory. As just raw bytes" }, { "start": 1384.52, "duration": 0.0, "text": "Or sorry, as memory. As just raw bytes in<00:23:04.640> a<00:23:04.680> byte<00:23:04.920> grid." }, { "start": 1385.99, "duration": 0.0, "text": "in a byte grid." }, { "start": 1386.0, "duration": 0.0, "text": "in a byte grid. Um" }, { "start": 1387.11, "duration": 0.0, "text": "Um" }, { "start": 1387.12, "duration": 0.0, "text": "Um So,<00:23:08.080> um" }, { "start": 1389.59, "duration": 0.0, "text": "So, um" }, { "start": 1389.6, "duration": 0.0, "text": "So, um that's<00:23:09.880> like<00:23:10.040> something<00:23:10.360> you<00:23:10.440> can<00:23:10.560> do.<00:23:11.120> It's" }, { "start": 1391.31, "duration": 0.0, "text": "that's like something you can do. It's" }, { "start": 1391.32, "duration": 0.0, "text": "that's like something you can do. It's kind<00:23:11.440> of<00:23:11.520> cool." }, { "start": 1392.47, "duration": 0.0, "text": "kind of cool." }, { "start": 1392.48, "duration": 0.0, "text": "kind of cool. Uh<00:23:13.160> I<00:23:13.280> guess<00:23:13.800> I<00:23:13.840> don't<00:23:14.080> know<00:23:14.360> what<00:23:14.520> to<00:23:14.600> show" }, { "start": 1394.75, "duration": 0.0, "text": "Uh I guess I don't know what to show" }, { "start": 1394.76, "duration": 0.0, "text": "Uh I guess I don't know what to show next.<00:23:15.000> I<00:23:15.040> could<00:23:15.200> I<00:23:15.280> guess<00:23:15.480> I<00:23:15.560> could<00:23:15.720> show<00:23:15.880> some" }, { "start": 1396.03, "duration": 0.0, "text": "next. I could I guess I could show some" }, { "start": 1396.04, "duration": 0.0, "text": "next. I could I guess I could show some of<00:23:16.080> the<00:23:16.160> more<00:23:16.320> sophisticated<00:23:16.920> visualizers<00:23:17.520> as" }, { "start": 1397.67, "duration": 0.0, "text": "of the more sophisticated visualizers as" }, { "start": 1397.68, "duration": 0.0, "text": "of the more sophisticated visualizers as well." }, { "start": 1398.87, "duration": 0.0, "text": "well." }, { "start": 1398.88, "duration": 0.0, "text": "well. Like<00:23:19.760> uh" }, { "start": 1400.71, "duration": 0.0, "text": "Like uh" }, { "start": 1400.72, "duration": 0.0, "text": "Like uh um" }, { "start": 1402.67, "duration": 0.0, "text": "um" }, { "start": 1402.68, "duration": 0.0, "text": "um I<00:23:22.720> guess<00:23:22.920> we'll<00:23:23.040> go<00:23:23.200> down<00:23:23.520> to" }, { "start": 1407.92, "duration": 0.0, "text": "fancy<00:23:28.200> vizzy<00:23:28.480> val<00:23:28.680> tests." }, { "start": 1411.84, "duration": 0.0, "text": "Um" }, { "start": 1414.4, "duration": 0.0, "text": "let's<00:23:34.720> do" }, { "start": 1417.07, "duration": 0.0, "text": "let's do" }, { "start": 1417.08, "duration": 0.0, "text": "let's do Okay,<00:23:37.280> so<00:23:37.360> these<00:23:37.520> are<00:23:37.600> kind<00:23:37.760> of<00:23:37.840> cool." }, { "start": 1420.07, "duration": 0.0, "text": "Okay, so these are kind of cool." }, { "start": 1420.08, "duration": 0.0, "text": "Okay, so these are kind of cool. If<00:23:40.160> we<00:23:40.280> have<00:23:41.120> like<00:23:41.240> a<00:23:41.320> float<00:23:41.680> here<00:23:42.160> that's<00:23:42.840> um" }, { "start": 1424.19, "duration": 0.0, "text": "If we have like a float here that's um" }, { "start": 1424.2, "duration": 0.0, "text": "If we have like a float here that's um you<00:23:44.240> know,<00:23:44.360> 500<00:23:45.080> and<00:23:45.200> let's<00:23:45.400> say<00:23:45.560> like<00:23:45.920> I<00:23:46.000> just" }, { "start": 1426.23, "duration": 0.0, "text": "you know, 500 and let's say like I just" }, { "start": 1426.24, "duration": 0.0, "text": "you know, 500 and let's say like I just happen<00:23:46.440> to<00:23:46.520> know<00:23:46.840> in<00:23:47.040> C,<00:23:47.360> we<00:23:47.480> don't<00:23:47.640> have<00:23:47.760> this" }, { "start": 1427.91, "duration": 0.0, "text": "happen to know in C, we don't have this" }, { "start": 1427.92, "duration": 0.0, "text": "happen to know in C, we don't have this in<00:23:48.040> type<00:23:48.280> info,<00:23:48.560> but<00:23:49.040> but<00:23:49.120> basically<00:23:49.440> like<00:23:50.200> um" }, { "start": 1430.71, "duration": 0.0, "text": "in type info, but but basically like um" }, { "start": 1430.72, "duration": 0.0, "text": "in type info, but but basically like um I've<00:23:50.840> got<00:23:50.960> a<00:23:51.000> float<00:23:51.320> here,<00:23:51.560> it's<00:23:51.920> set<00:23:52.120> to<00:23:52.200> 500," }, { "start": 1432.99, "duration": 0.0, "text": "I've got a float here, it's set to 500," }, { "start": 1433.0, "duration": 0.0, "text": "I've got a float here, it's set to 500, um<00:23:53.400> but<00:23:53.520> I<00:23:53.600> want<00:23:53.720> to<00:23:53.800> consider<00:23:54.080> this<00:23:54.200> thing<00:23:54.400> as" }, { "start": 1434.51, "duration": 0.0, "text": "um but I want to consider this thing as" }, { "start": 1434.52, "duration": 0.0, "text": "um but I want to consider this thing as between<00:23:54.920> the<00:23:55.040> range<00:23:55.360> of<00:23:55.640> like<00:23:55.880> I<00:23:56.080> I<00:23:56.120> want<00:23:56.240> to" }, { "start": 1436.31, "duration": 0.0, "text": "between the range of like I I want to" }, { "start": 1436.32, "duration": 0.0, "text": "between the range of like I I want to consider<00:23:56.560> this<00:23:56.680> thing<00:23:56.840> as<00:23:57.120> within<00:23:57.440> the<00:23:57.520> range" }, { "start": 1437.79, "duration": 0.0, "text": "consider this thing as within the range" }, { "start": 1437.8, "duration": 0.0, "text": "consider this thing as within the range of<00:23:57.920> 0<00:23:58.240> to<00:23:58.360> 1,000,<00:23:58.840> right?" }, { "start": 1440.07, "duration": 0.0, "text": "of 0 to 1,000, right?" }, { "start": 1440.08, "duration": 0.0, "text": "of 0 to 1,000, right? Um" }, { "start": 1441.23, "duration": 0.0, "text": "Um" }, { "start": 1441.24, "duration": 0.0, "text": "Um So,<00:24:01.360> you<00:24:01.440> can<00:24:01.560> actually<00:24:01.880> specify<00:24:02.280> this<00:24:02.440> to<00:24:02.520> the" }, { "start": 1442.59, "duration": 0.0, "text": "So, you can actually specify this to the" }, { "start": 1442.6, "duration": 0.0, "text": "So, you can actually specify this to the debugger<00:24:02.920> and<00:24:03.000> you<00:24:03.080> can<00:24:03.200> say<00:24:03.360> range<00:24:03.720> one<00:24:04.560> for" }, { "start": 1444.75, "duration": 0.0, "text": "debugger and you can say range one for" }, { "start": 1444.76, "duration": 0.0, "text": "debugger and you can say range one for one<00:24:05.400> for<00:24:05.600> one<00:24:06.040> one<00:24:06.200> dimension." }, { "start": 1447.35, "duration": 0.0, "text": "one for one one dimension." }, { "start": 1447.36, "duration": 0.0, "text": "one for one one dimension. And<00:24:07.400> I<00:24:07.440> can<00:24:07.560> say<00:24:07.720> slide<00:24:08.120> one<00:24:08.440> and<00:24:08.560> I<00:24:08.640> want<00:24:08.840> this" }, { "start": 1448.95, "duration": 0.0, "text": "And I can say slide one and I want this" }, { "start": 1448.96, "duration": 0.0, "text": "And I can say slide one and I want this to<00:24:09.040> be<00:24:09.120> zero<00:24:09.960> between<00:24:10.186> [clears throat]<00:24:10.320> zero" }, { "start": 1450.51, "duration": 0.0, "text": "to be zero between [clears throat] zero" }, { "start": 1450.52, "duration": 0.0, "text": "to be zero between [clears throat] zero and<00:24:10.600> 1,000,<00:24:11.040> so<00:24:11.120> it<00:24:11.200> should<00:24:11.320> be<00:24:11.400> right<00:24:11.600> in<00:24:11.640> the" }, { "start": 1451.71, "duration": 0.0, "text": "and 1,000, so it should be right in the" }, { "start": 1451.72, "duration": 0.0, "text": "and 1,000, so it should be right in the middle." }, { "start": 1452.47, "duration": 0.0, "text": "middle." }, { "start": 1452.48, "duration": 0.0, "text": "middle. >> Nice." }, { "start": 1453.27, "duration": 0.0, "text": ">> Nice." }, { "start": 1453.28, "duration": 0.0, "text": ">> Nice. >> And<00:24:13.360> sure<00:24:13.840> And<00:24:13.960> sure<00:24:14.120> enough" }, { "start": 1455.23, "duration": 0.0, "text": ">> And sure And sure enough" }, { "start": 1455.24, "duration": 0.0, "text": ">> And sure And sure enough you<00:24:15.280> get<00:24:15.440> this<00:24:16.000> and<00:24:16.480> if<00:24:16.680> I<00:24:16.920> change<00:24:17.240> the<00:24:17.320> value" }, { "start": 1458.35, "duration": 0.0, "text": "you get this and if I change the value" }, { "start": 1458.36, "duration": 0.0, "text": "you get this and if I change the value and<00:24:18.480> if<00:24:18.560> I<00:24:18.640> just<00:24:18.800> evaluate<00:24:19.200> the<00:24:19.280> float<00:24:19.600> itself," }, { "start": 1459.95, "duration": 0.0, "text": "and if I just evaluate the float itself," }, { "start": 1459.96, "duration": 0.0, "text": "and if I just evaluate the float itself, you'll<00:24:20.120> see<00:24:20.320> that<00:24:20.560> I'm<00:24:20.680> actually<00:24:20.960> changing" }, { "start": 1461.43, "duration": 0.0, "text": "you'll see that I'm actually changing" }, { "start": 1461.44, "duration": 0.0, "text": "you'll see that I'm actually changing the<00:24:21.520> memory<00:24:21.880> like<00:24:22.120> of<00:24:22.240> the<00:24:22.320> program<00:24:22.760> as<00:24:22.920> I<00:24:22.960> do" }, { "start": 1463.11, "duration": 0.0, "text": "the memory like of the program as I do" }, { "start": 1463.12, "duration": 0.0, "text": "the memory like of the program as I do this." }, { "start": 1464.07, "duration": 0.0, "text": "this." }, { "start": 1464.08, "duration": 0.0, "text": "this. Um" }, { "start": 1467.48, "duration": 0.0, "text": "So," }, { "start": 1468.47, "duration": 0.0, "text": "So," }, { "start": 1468.48, "duration": 0.0, "text": "So, um" }, { "start": 1469.43, "duration": 0.0, "text": "um" }, { "start": 1469.44, "duration": 0.0, "text": "um and<00:24:29.520> then<00:24:29.680> it's<00:24:29.800> like<00:24:29.960> you<00:24:30.240> you<00:24:30.320> might<00:24:30.520> look<00:24:30.640> at" }, { "start": 1470.71, "duration": 0.0, "text": "and then it's like you you might look at" }, { "start": 1470.72, "duration": 0.0, "text": "and then it's like you you might look at this<00:24:30.840> and<00:24:30.920> you're<00:24:31.000> like,<00:24:31.120> \"Hey,<00:24:31.280> this<00:24:31.520> UI" }, { "start": 1471.95, "duration": 0.0, "text": "this and you're like, \"Hey, this UI" }, { "start": 1471.96, "duration": 0.0, "text": "this and you're like, \"Hey, this UI actually<00:24:32.280> looks<00:24:32.480> a<00:24:32.560> lot<00:24:32.920> like<00:24:33.120> if<00:24:33.280> I<00:24:33.360> hit<00:24:33.600> F1" }, { "start": 1473.99, "duration": 0.0, "text": "actually looks a lot like if I hit F1" }, { "start": 1474.0, "duration": 0.0, "text": "actually looks a lot like if I hit F1 and<00:24:34.120> type<00:24:34.360> font<00:24:34.720> size.\"<00:24:35.760> It's<00:24:35.920> so<00:24:36.080> strange" }, { "start": 1476.55, "duration": 0.0, "text": "and type font size.\" It's so strange" }, { "start": 1476.56, "duration": 0.0, "text": "and type font size.\" It's so strange because<00:24:36.800> I<00:24:36.880> actually<00:24:37.160> see<00:24:37.520> that<00:24:37.720> there's<00:24:37.920> all" }, { "start": 1477.99, "duration": 0.0, "text": "because I actually see that there's all" }, { "start": 1478.0, "duration": 0.0, "text": "because I actually see that there's all these<00:24:38.160> options<00:24:38.520> for<00:24:38.640> like<00:24:38.840> these<00:24:39.000> different" }, { "start": 1479.23, "duration": 0.0, "text": "these options for like these different" }, { "start": 1479.24, "duration": 0.0, "text": "these options for like these different kinds<00:24:39.480> of<00:24:39.560> like<00:24:39.720> sizes<00:24:40.280> and<00:24:40.400> font<00:24:40.640> sizes<00:24:41.000> and" }, { "start": 1481.11, "duration": 0.0, "text": "kinds of like sizes and font sizes and" }, { "start": 1481.12, "duration": 0.0, "text": "kinds of like sizes and font sizes and stuff<00:24:41.240> like<00:24:41.360> that.<00:24:41.800> It's<00:24:41.880> like,<00:24:42.320> \"That's" }, { "start": 1482.47, "duration": 0.0, "text": "stuff like that. It's like, \"That's" }, { "start": 1482.48, "duration": 0.0, "text": "stuff like that. It's like, \"That's pretty<00:24:42.640> interesting,<00:24:42.960> right?\"<00:24:43.080> It's<00:24:43.200> like," }, { "start": 1483.35, "duration": 0.0, "text": "pretty interesting, right?\" It's like," }, { "start": 1483.36, "duration": 0.0, "text": "pretty interesting, right?\" It's like, \"Yeah,<00:24:43.560> that's<00:24:43.960> evaluating<00:24:44.800> the<00:24:44.920> setting<00:24:45.440> of" }, { "start": 1485.75, "duration": 0.0, "text": "\"Yeah, that's evaluating the setting of" }, { "start": 1485.76, "duration": 0.0, "text": "\"Yeah, that's evaluating the setting of the<00:24:45.840> debugger.\"<00:24:46.320> Like<00:24:46.520> that's<00:24:47.000> So,<00:24:47.160> this<00:24:47.360> is" }, { "start": 1487.51, "duration": 0.0, "text": "the debugger.\" Like that's So, this is" }, { "start": 1487.52, "duration": 0.0, "text": "the debugger.\" Like that's So, this is literally<00:24:47.880> the<00:24:48.000> same<00:24:48.240> UI<00:24:48.840> as<00:24:49.080> this.<00:24:49.320> It's<00:24:49.440> not" }, { "start": 1489.63, "duration": 0.0, "text": "literally the same UI as this. It's not" }, { "start": 1489.64, "duration": 0.0, "text": "literally the same UI as this. It's not just<00:24:49.840> that<00:24:49.920> I'm<00:24:50.040> calling<00:24:50.320> the<00:24:50.400> same<00:24:50.600> helper" }, { "start": 1490.87, "duration": 0.0, "text": "just that I'm calling the same helper" }, { "start": 1490.88, "duration": 0.0, "text": "just that I'm calling the same helper function<00:24:51.240> in<00:24:51.320> two<00:24:51.480> places.<00:24:52.320> It's<00:24:52.600> literally" }, { "start": 1492.99, "duration": 0.0, "text": "function in two places. It's literally" }, { "start": 1493.0, "duration": 0.0, "text": "function in two places. It's literally the<00:24:53.120> same<00:24:53.360> path<00:24:54.080> uh<00:24:54.160> being<00:24:54.360> used<00:24:54.520> for<00:24:54.600> both." }, { "start": 1494.99, "duration": 0.0, "text": "the same path uh being used for both." }, { "start": 1495.0, "duration": 0.0, "text": "the same path uh being used for both. So,<00:24:55.680> that's<00:24:55.840> like<00:24:56.000> one<00:24:56.400> kind<00:24:56.600> of<00:24:57.040> fun<00:24:57.320> thing." }, { "start": 1497.75, "duration": 0.0, "text": "So, that's like one kind of fun thing." }, { "start": 1497.76, "duration": 0.0, "text": "So, that's like one kind of fun thing. It's<00:24:57.960> not<00:24:58.120> super<00:24:58.400> important<00:24:58.800> to<00:24:58.880> know<00:24:59.040> that," }, { "start": 1499.27, "duration": 0.0, "text": "It's not super important to know that," }, { "start": 1499.28, "duration": 0.0, "text": "It's not super important to know that, but<00:24:59.400> it's<00:24:59.560> just<00:24:59.720> like<00:24:59.880> a<00:24:59.960> cool<00:25:00.280> architectural" }, { "start": 1500.87, "duration": 0.0, "text": "but it's just like a cool architectural" }, { "start": 1500.88, "duration": 0.0, "text": "but it's just like a cool architectural aspect<00:25:01.280> of<00:25:01.640> the<00:25:01.720> debugger<00:25:02.120> is<00:25:02.280> that<00:25:02.720> I<00:25:02.840> found" }, { "start": 1503.11, "duration": 0.0, "text": "aspect of the debugger is that I found" }, { "start": 1503.12, "duration": 0.0, "text": "aspect of the debugger is that I found that<00:25:03.240> the<00:25:03.320> best<00:25:03.640> way<00:25:03.800> to<00:25:04.040> collapse<00:25:04.680> all<00:25:04.920> of" }, { "start": 1504.99, "duration": 0.0, "text": "that the best way to collapse all of" }, { "start": 1505.0, "duration": 0.0, "text": "that the best way to collapse all of this" }, { "start": 1505.99, "duration": 0.0, "text": "this" }, { "start": 1506.0, "duration": 0.0, "text": "this all<00:25:06.320> of<00:25:06.400> these<00:25:06.640> UIs<00:25:07.040> for<00:25:07.120> like<00:25:07.480> editing<00:25:07.800> the" }, { "start": 1507.87, "duration": 0.0, "text": "all of these UIs for like editing the" }, { "start": 1507.88, "duration": 0.0, "text": "all of these UIs for like editing the debugger<00:25:08.200> settings<00:25:08.760> and,<00:25:09.000> you<00:25:09.040> know,<00:25:09.200> tab" }, { "start": 1509.55, "duration": 0.0, "text": "debugger settings and, you know, tab" }, { "start": 1509.56, "duration": 0.0, "text": "debugger settings and, you know, tab settings<00:25:10.080> and<00:25:10.320> watch<00:25:10.600> window<00:25:10.800> stuff.<00:25:11.040> It's" }, { "start": 1511.15, "duration": 0.0, "text": "settings and watch window stuff. It's" }, { "start": 1511.16, "duration": 0.0, "text": "settings and watch window stuff. It's like" }, { "start": 1512.27, "duration": 0.0, "text": "like" }, { "start": 1512.28, "duration": 0.0, "text": "like I<00:25:12.840> I<00:25:12.920> found<00:25:13.080> that<00:25:13.200> the<00:25:13.240> best<00:25:13.480> way<00:25:13.640> to<00:25:13.760> actually" }, { "start": 1513.99, "duration": 0.0, "text": "I I found that the best way to actually" }, { "start": 1514.0, "duration": 0.0, "text": "I I found that the best way to actually collapse<00:25:14.360> all<00:25:14.480> of<00:25:14.560> it<00:25:14.640> down<00:25:14.880> was<00:25:15.120> to<00:25:15.240> make<00:25:15.520> the" }, { "start": 1515.59, "duration": 0.0, "text": "collapse all of it down was to make the" }, { "start": 1515.6, "duration": 0.0, "text": "collapse all of it down was to make the watch<00:25:15.800> window<00:25:16.040> super<00:25:16.280> super<00:25:16.520> powerful.<00:25:16.960> So," }, { "start": 1518.19, "duration": 0.0, "text": "watch window super super powerful. So," }, { "start": 1518.2, "duration": 0.0, "text": "watch window super super powerful. So, that's<00:25:18.560> what<00:25:18.720> ended<00:25:18.960> up<00:25:19.080> happening.<00:25:19.360> So," }, { "start": 1519.47, "duration": 0.0, "text": "that's what ended up happening. So," }, { "start": 1519.48, "duration": 0.0, "text": "that's what ended up happening. So, anyways,<00:25:20.160> we<00:25:20.240> have<00:25:20.360> sliders<00:25:20.840> here.<00:25:21.120> You<00:25:21.240> can" }, { "start": 1521.31, "duration": 0.0, "text": "anyways, we have sliders here. You can" }, { "start": 1521.32, "duration": 0.0, "text": "anyways, we have sliders here. You can do<00:25:21.440> this<00:25:21.640> with<00:25:21.920> integers<00:25:22.360> as<00:25:22.520> well.<00:25:22.760> So,<00:25:22.880> I" }, { "start": 1522.91, "duration": 0.0, "text": "do this with integers as well. So, I" }, { "start": 1522.92, "duration": 0.0, "text": "do this with integers as well. So, I could<00:25:23.040> do<00:25:23.160> range<00:25:23.480> one<00:25:24.160> uh<00:25:24.320> slide<00:25:24.680> three<00:25:25.000> is<00:25:25.040> an" }, { "start": 1525.15, "duration": 0.0, "text": "could do range one uh slide three is an" }, { "start": 1525.16, "duration": 0.0, "text": "could do range one uh slide three is an integer<00:25:25.560> and<00:25:25.680> I<00:25:25.720> can<00:25:25.840> say<00:25:26.000> this<00:25:26.200> is<00:25:26.320> also" }, { "start": 1526.51, "duration": 0.0, "text": "integer and I can say this is also" }, { "start": 1526.52, "duration": 0.0, "text": "integer and I can say this is also between<00:25:27.200> uh<00:25:27.280> this<00:25:27.480> is<00:25:27.560> between<00:25:27.880> zero<00:25:28.080> and<00:25:28.160> 100." }, { "start": 1529.19, "duration": 0.0, "text": "between uh this is between zero and 100." }, { "start": 1529.2, "duration": 0.0, "text": "between uh this is between zero and 100. Same<00:25:29.400> exact<00:25:29.680> thing<00:25:29.880> here,<00:25:30.360> right?<00:25:31.120> Um" }, { "start": 1536.24, "duration": 0.0, "text": "So," }, { "start": 1538.19, "duration": 0.0, "text": "So," }, { "start": 1538.2, "duration": 0.0, "text": "So, uh<00:25:38.840> we<00:25:38.920> have<00:25:39.040> colors<00:25:40.120> um" }, { "start": 1541.59, "duration": 0.0, "text": "uh we have colors um" }, { "start": 1541.6, "duration": 0.0, "text": "uh we have colors um as<00:25:41.840> well.<00:25:42.120> So,<00:25:42.280> if<00:25:42.400> I've<00:25:42.560> got<00:25:42.920> um<00:25:43.440> example" }, { "start": 1543.79, "duration": 0.0, "text": "as well. So, if I've got um example" }, { "start": 1543.8, "duration": 0.0, "text": "as well. So, if I've got um example color<00:25:44.040> 4F32" }, { "start": 1545.63, "duration": 0.0, "text": "color 4F32" }, { "start": 1545.64, "duration": 0.0, "text": "color 4F32 um<00:25:46.400> which<00:25:46.640> I<00:25:46.720> think<00:25:47.080> I<00:25:47.120> think<00:25:47.320> some<00:25:47.520> of<00:25:47.600> these" }, { "start": 1547.83, "duration": 0.0, "text": "um which I think I think some of these" }, { "start": 1547.84, "duration": 0.0, "text": "um which I think I think some of these may<00:25:48.080> be<00:25:48.520> kind<00:25:48.720> of<00:25:48.840> work<00:25:49.040> in<00:25:49.120> progress.<00:25:49.600> So,<00:25:49.680> I" }, { "start": 1549.71, "duration": 0.0, "text": "may be kind of work in progress. So, I" }, { "start": 1549.72, "duration": 0.0, "text": "may be kind of work in progress. So, I don't<00:25:49.920> know<00:25:50.320> there<00:25:50.440> might<00:25:50.640> be<00:25:50.960> one<00:25:51.160> of<00:25:51.240> these" }, { "start": 1551.47, "duration": 0.0, "text": "don't know there might be one of these" }, { "start": 1551.48, "duration": 0.0, "text": "don't know there might be one of these that<00:25:51.640> doesn't<00:25:51.920> quite<00:25:52.200> work<00:25:52.400> yet,<00:25:52.560> but<00:25:52.720> let's" }, { "start": 1552.87, "duration": 0.0, "text": "that doesn't quite work yet, but let's" }, { "start": 1552.88, "duration": 0.0, "text": "that doesn't quite work yet, but let's try<00:25:53.840> let's<00:25:54.000> try<00:25:54.160> color<00:25:55.240> um<00:25:55.640> example<00:25:56.240> color" }, { "start": 1556.59, "duration": 0.0, "text": "try let's try color um example color" }, { "start": 1556.6, "duration": 0.0, "text": "try let's try color um example color U32.<00:25:57.920> Is<00:25:58.000> this<00:25:58.120> going<00:25:58.240> to<00:25:58.320> work?<00:25:58.760> Okay.<00:25:59.200> I" }, { "start": 1559.27, "duration": 0.0, "text": "U32. Is this going to work? Okay. I" }, { "start": 1559.28, "duration": 0.0, "text": "U32. Is this going to work? Okay. I don't<00:25:59.440> know<00:25:59.520> if<00:25:59.640> editing<00:26:00.040> will<00:26:00.160> work.<00:26:00.680> Okay," }, { "start": 1560.83, "duration": 0.0, "text": "don't know if editing will work. Okay," }, { "start": 1560.84, "duration": 0.0, "text": "don't know if editing will work. Okay, yeah,<00:26:01.040> editing<00:26:01.360> works.<00:26:01.560> So,<00:26:01.720> U32<00:26:02.280> seems<00:26:02.520> to<00:26:02.600> be" }, { "start": 1562.71, "duration": 0.0, "text": "yeah, editing works. So, U32 seems to be" }, { "start": 1562.72, "duration": 0.0, "text": "yeah, editing works. So, U32 seems to be the<00:26:02.960> one<00:26:03.200> that<00:26:03.360> I<00:26:03.840> I<00:26:03.920> think<00:26:04.120> the<00:26:04.240> four<00:26:04.480> float" }, { "start": 1564.75, "duration": 0.0, "text": "the one that I I think the four float" }, { "start": 1564.76, "duration": 0.0, "text": "the one that I I think the four float one<00:26:04.960> is<00:26:05.120> maybe" }, { "start": 1566.43, "duration": 0.0, "text": "one is maybe" }, { "start": 1566.44, "duration": 0.0, "text": "one is maybe there's<00:26:06.560> still<00:26:06.720> some<00:26:06.840> stuff<00:26:07.000> that's<00:26:07.160> in" }, { "start": 1567.23, "duration": 0.0, "text": "there's still some stuff that's in" }, { "start": 1567.24, "duration": 0.0, "text": "there's still some stuff that's in progress<00:26:07.680> here<00:26:07.840> with<00:26:08.160> with<00:26:08.400> some<00:26:08.520> of<00:26:08.600> these" }, { "start": 1568.71, "duration": 0.0, "text": "progress here with with some of these" }, { "start": 1568.72, "duration": 0.0, "text": "progress here with with some of these fancy<00:26:09.120> things.<00:26:09.400> Like<00:26:09.520> I<00:26:09.560> think<00:26:09.800> this<00:26:09.960> might" }, { "start": 1570.47, "duration": 0.0, "text": "fancy things. Like I think this might" }, { "start": 1570.48, "duration": 0.0, "text": "fancy things. Like I think this might work<00:26:10.920> for<00:26:11.080> the<00:26:11.200> visualization,<00:26:11.960> but<00:26:12.120> I<00:26:12.160> don't" }, { "start": 1572.27, "duration": 0.0, "text": "work for the visualization, but I don't" }, { "start": 1572.28, "duration": 0.0, "text": "work for the visualization, but I don't know<00:26:12.400> if<00:26:12.520> I<00:26:12.560> can<00:26:12.720> edit<00:26:13.000> it.<00:26:13.560> Yeah,<00:26:13.760> so<00:26:13.880> there's" }, { "start": 1574.07, "duration": 0.0, "text": "know if I can edit it. Yeah, so there's" }, { "start": 1574.08, "duration": 0.0, "text": "know if I can edit it. Yeah, so there's a<00:26:14.200> there's<00:26:14.320> a<00:26:14.360> couple<00:26:14.600> of<00:26:14.640> missing<00:26:14.920> features" }, { "start": 1575.19, "duration": 0.0, "text": "a there's a couple of missing features" }, { "start": 1575.2, "duration": 0.0, "text": "a there's a couple of missing features here,<00:26:15.360> but<00:26:16.000> in<00:26:16.080> the<00:26:16.120> case<00:26:16.320> of<00:26:16.400> the<00:26:16.480> U32" }, { "start": 1578.07, "duration": 0.0, "text": "here, but in the case of the U32" }, { "start": 1578.08, "duration": 0.0, "text": "here, but in the case of the U32 um<00:26:18.520> you<00:26:18.640> know,<00:26:18.760> we<00:26:18.880> can<00:26:19.040> edit<00:26:19.960> just<00:26:20.320> this<00:26:20.480> thing" }, { "start": 1580.67, "duration": 0.0, "text": "um you know, we can edit just this thing" }, { "start": 1580.68, "duration": 0.0, "text": "um you know, we can edit just this thing here.<00:26:21.120> We<00:26:21.200> can<00:26:21.320> change<00:26:21.800> whatever<00:26:22.000> the<00:26:22.080> color" }, { "start": 1582.31, "duration": 0.0, "text": "here. We can change whatever the color" }, { "start": 1582.32, "duration": 0.0, "text": "here. We can change whatever the color value<00:26:22.640> is.<00:26:23.480> Um<00:26:23.800> and<00:26:23.920> you<00:26:23.960> can<00:26:24.080> see<00:26:24.240> like<00:26:24.680> this" }, { "start": 1584.91, "duration": 0.0, "text": "value is. Um and you can see like this" }, { "start": 1584.92, "duration": 0.0, "text": "value is. Um and you can see like this U32<00:26:25.520> value<00:26:25.920> it's<00:26:26.080> being<00:26:26.640> uh<00:26:26.920> kind<00:26:27.080> of<00:26:27.600> peaked" }, { "start": 1588.03, "duration": 0.0, "text": "U32 value it's being uh kind of peaked" }, { "start": 1588.04, "duration": 0.0, "text": "U32 value it's being uh kind of peaked right<00:26:28.240> here<00:26:28.400> in<00:26:28.480> the<00:26:28.520> source<00:26:28.800> code.<00:26:29.720> Um<00:26:30.320> and" }, { "start": 1590.63, "duration": 0.0, "text": "right here in the source code. Um and" }, { "start": 1590.64, "duration": 0.0, "text": "right here in the source code. Um and you<00:26:30.720> can<00:26:30.840> see<00:26:30.960> it's<00:26:31.080> actually<00:26:31.360> changing<00:26:31.800> like" }, { "start": 1591.99, "duration": 0.0, "text": "you can see it's actually changing like" }, { "start": 1592.0, "duration": 0.0, "text": "you can see it's actually changing like as<00:26:32.200> I<00:26:32.280> just<00:26:32.440> drag<00:26:32.720> this<00:26:32.880> color<00:26:33.440> around.<00:26:34.160> Um" }, { "start": 1595.39, "duration": 0.0, "text": "as I just drag this color around. Um" }, { "start": 1595.4, "duration": 0.0, "text": "as I just drag this color around. Um So,<00:26:35.560> yeah." }, { "start": 1597.31, "duration": 0.0, "text": "So, yeah." }, { "start": 1597.32, "duration": 0.0, "text": "So, yeah. Um" }, { "start": 1598.208, "duration": 0.0, "text": "Um" }, { "start": 1598.218, "duration": 0.0, "text": "Um >> [sighs]" }, { "start": 1598.95, "duration": 0.0, "text": ">> [sighs]" }, { "start": 1598.96, "duration": 0.0, "text": ">> [sighs] >> uh<00:26:39.160> multi-line<00:26:39.720> text<00:26:40.080> I<00:26:40.120> already<00:26:40.360> showed" }, { "start": 1600.67, "duration": 0.0, "text": ">> uh multi-line text I already showed" }, { "start": 1600.68, "duration": 0.0, "text": ">> uh multi-line text I already showed this,<00:26:40.960> but<00:26:41.240> we<00:26:41.320> can<00:26:41.440> do<00:26:41.800> text<00:26:42.320> of<00:26:43.120> uh" }, { "start": 1603.67, "duration": 0.0, "text": "this, but we can do text of uh" }, { "start": 1603.68, "duration": 0.0, "text": "this, but we can do text of uh long<00:26:44.080> string." }, { "start": 1605.75, "duration": 0.0, "text": "long string." }, { "start": 1605.76, "duration": 0.0, "text": "long string. We<00:26:45.880> can<00:26:46.000> do<00:26:46.360> text<00:26:47.360> um" }, { "start": 1608.43, "duration": 0.0, "text": "We can do text um" }, { "start": 1608.44, "duration": 0.0, "text": "We can do text um text<00:26:48.880> of<00:26:49.040> code<00:26:49.360> string.<00:26:50.000> The<00:26:50.120> language<00:26:50.720> and<00:26:51.040> in" }, { "start": 1611.11, "duration": 0.0, "text": "text of code string. The language and in" }, { "start": 1611.12, "duration": 0.0, "text": "text of code string. The language and in this<00:26:51.280> case<00:26:51.520> it's<00:26:51.680> like<00:26:51.840> we<00:26:51.920> have<00:26:52.080> some<00:26:52.280> C" }, { "start": 1612.51, "duration": 0.0, "text": "this case it's like we have some C" }, { "start": 1612.52, "duration": 0.0, "text": "this case it's like we have some C source<00:26:52.800> code<00:26:53.000> so<00:26:53.080> maybe<00:26:53.280> I<00:26:53.320> just<00:26:53.480> want<00:26:53.600> to<00:26:53.680> say" }, { "start": 1613.83, "duration": 0.0, "text": "source code so maybe I just want to say" }, { "start": 1613.84, "duration": 0.0, "text": "source code so maybe I just want to say C<00:26:54.760> Uh" }, { "start": 1615.75, "duration": 0.0, "text": "C Uh" }, { "start": 1615.76, "duration": 0.0, "text": "C Uh or<00:26:55.920> sorry" }, { "start": 1616.79, "duration": 0.0, "text": "or sorry" }, { "start": 1616.8, "duration": 0.0, "text": "or sorry that<00:26:57.400> not<00:26:57.640> shown<00:26:57.800> in<00:26:57.840> the<00:26:57.920> docs<00:26:58.160> but<00:26:58.280> that" }, { "start": 1618.43, "duration": 0.0, "text": "that not shown in the docs but that" }, { "start": 1618.44, "duration": 0.0, "text": "that not shown in the docs but that needs<00:26:58.640> to<00:26:58.720> be<00:26:58.760> a<00:26:58.800> named<00:26:59.080> parameter.<00:26:59.400> So" }, { "start": 1619.51, "duration": 0.0, "text": "needs to be a named parameter. So" }, { "start": 1619.52, "duration": 0.0, "text": "needs to be a named parameter. So anyways,<00:27:00.280> code<00:27:00.520> strain<00:27:00.840> lang<00:27:01.120> C" }, { "start": 1622.27, "duration": 0.0, "text": "anyways, code strain lang C" }, { "start": 1622.28, "duration": 0.0, "text": "anyways, code strain lang C I'm<00:27:02.440> still<00:27:02.600> working<00:27:02.840> on<00:27:02.960> the<00:27:03.080> in<00:27:03.480> application" }, { "start": 1623.91, "duration": 0.0, "text": "I'm still working on the in application" }, { "start": 1623.92, "duration": 0.0, "text": "I'm still working on the in application docs<00:27:04.240> so<00:27:04.360> it's<00:27:04.480> a<00:27:04.520> little<00:27:04.720> bit<00:27:05.080> it's<00:27:05.200> a<00:27:05.240> little" }, { "start": 1625.35, "duration": 0.0, "text": "docs so it's a little bit it's a little" }, { "start": 1625.36, "duration": 0.0, "text": "docs so it's a little bit it's a little bit<00:27:05.480> like<00:27:05.640> of<00:27:05.720> a<00:27:05.760> secret<00:27:06.240> thing<00:27:06.480> but" }, { "start": 1628.15, "duration": 0.0, "text": "bit like of a secret thing but" }, { "start": 1628.16, "duration": 0.0, "text": "bit like of a secret thing but lang<00:27:08.440> equals<00:27:08.720> C<00:27:08.880> and<00:27:08.960> then<00:27:09.080> you<00:27:09.160> can<00:27:09.240> see<00:27:09.640> oh<00:27:09.880> I" }, { "start": 1629.95, "duration": 0.0, "text": "lang equals C and then you can see oh I" }, { "start": 1629.96, "duration": 0.0, "text": "lang equals C and then you can see oh I actually<00:27:10.240> see<00:27:10.400> my<00:27:10.600> C<00:27:10.800> source<00:27:11.040> code<00:27:11.240> here" }, { "start": 1632.67, "duration": 0.0, "text": "actually see my C source code here" }, { "start": 1632.68, "duration": 0.0, "text": "actually see my C source code here syntax<00:27:13.080> highlighted<00:27:13.560> and<00:27:13.640> everything<00:27:14.040> and" }, { "start": 1634.35, "duration": 0.0, "text": "syntax highlighted and everything and" }, { "start": 1634.36, "duration": 0.0, "text": "syntax highlighted and everything and show<00:27:14.560> showing<00:27:14.800> me<00:27:14.880> the<00:27:15.000> scopes<00:27:15.320> and<00:27:15.400> stuff" }, { "start": 1635.59, "duration": 0.0, "text": "show showing me the scopes and stuff" }, { "start": 1635.6, "duration": 0.0, "text": "show showing me the scopes and stuff like<00:27:15.720> that.<00:27:16.560> Um" }, { "start": 1638.47, "duration": 0.0, "text": "like that. Um" }, { "start": 1638.48, "duration": 0.0, "text": "like that. Um So<00:27:18.600> let's<00:27:18.760> see<00:27:18.880> what<00:27:19.000> else.<00:27:19.640> This<00:27:19.880> is<00:27:19.960> assembly" }, { "start": 1640.51, "duration": 0.0, "text": "So let's see what else. This is assembly" }, { "start": 1640.52, "duration": 0.0, "text": "So let's see what else. This is assembly of<00:27:20.640> course.<00:27:21.000> So<00:27:21.440> if<00:27:21.640> I<00:27:21.720> open<00:27:21.960> up<00:27:22.040> like<00:27:22.200> a" }, { "start": 1642.23, "duration": 0.0, "text": "of course. So if I open up like a" }, { "start": 1642.24, "duration": 0.0, "text": "of course. So if I open up like a disassembly<00:27:22.840> view" }, { "start": 1643.83, "duration": 0.0, "text": "disassembly view" }, { "start": 1643.84, "duration": 0.0, "text": "disassembly view um" }, { "start": 1645.19, "duration": 0.0, "text": "um" }, { "start": 1645.2, "duration": 0.0, "text": "um and<00:27:25.920> uh" }, { "start": 1648.0, "duration": 0.0, "text": "I<00:27:28.200> want<00:27:28.360> to<00:27:28.400> see<00:27:28.520> like<00:27:28.720> where<00:27:28.880> my<00:27:29.000> thread<00:27:29.280> is" }, { "start": 1649.71, "duration": 0.0, "text": "I want to see like where my thread is" }, { "start": 1649.72, "duration": 0.0, "text": "I want to see like where my thread is with<00:27:29.920> respect<00:27:30.200> to<00:27:30.280> the<00:27:30.440> actual<00:27:30.880> machine<00:27:31.160> code" }, { "start": 1651.31, "duration": 0.0, "text": "with respect to the actual machine code" }, { "start": 1651.32, "duration": 0.0, "text": "with respect to the actual machine code instructions" }, { "start": 1652.75, "duration": 0.0, "text": "instructions" }, { "start": 1652.76, "duration": 0.0, "text": "instructions um<00:27:33.360> I<00:27:33.440> can<00:27:33.560> open<00:27:33.720> up<00:27:33.800> a<00:27:33.880> disassembly<00:27:34.320> view<00:27:34.520> that" }, { "start": 1654.83, "duration": 0.0, "text": "um I can open up a disassembly view that" }, { "start": 1654.84, "duration": 0.0, "text": "um I can open up a disassembly view that takes<00:27:35.040> the<00:27:35.160> actual<00:27:35.480> code<00:27:35.840> that's<00:27:36.080> in<00:27:36.200> the" }, { "start": 1656.27, "duration": 0.0, "text": "takes the actual code that's in the" }, { "start": 1656.28, "duration": 0.0, "text": "takes the actual code that's in the process<00:27:36.720> that<00:27:36.880> the<00:27:36.960> thread<00:27:37.240> is<00:27:37.360> stopped<00:27:37.720> on" }, { "start": 1658.27, "duration": 0.0, "text": "process that the thread is stopped on" }, { "start": 1658.28, "duration": 0.0, "text": "process that the thread is stopped on and<00:27:38.480> it<00:27:38.600> just<00:27:39.200> disassembles<00:27:39.840> it.<00:27:40.640> Um<00:27:41.440> meaning" }, { "start": 1661.71, "duration": 0.0, "text": "and it just disassembles it. Um meaning" }, { "start": 1661.72, "duration": 0.0, "text": "and it just disassembles it. Um meaning it<00:27:41.800> interprets<00:27:42.280> it<00:27:42.400> how<00:27:42.480> the<00:27:42.560> CPU<00:27:42.920> would" }, { "start": 1663.03, "duration": 0.0, "text": "it interprets it how the CPU would" }, { "start": 1663.04, "duration": 0.0, "text": "it interprets it how the CPU would interpret<00:27:43.360> it<00:27:43.480> to<00:27:43.560> find<00:27:43.800> out<00:27:43.920> what<00:27:44.080> the" }, { "start": 1664.15, "duration": 0.0, "text": "interpret it to find out what the" }, { "start": 1664.16, "duration": 0.0, "text": "interpret it to find out what the instructions<00:27:44.600> are,<00:27:44.880> what<00:27:45.000> are<00:27:45.040> the" }, { "start": 1665.11, "duration": 0.0, "text": "instructions are, what are the" }, { "start": 1665.12, "duration": 0.0, "text": "instructions are, what are the parameters<00:27:45.560> to<00:27:45.640> the<00:27:45.680> instructions,<00:27:46.200> like<00:27:46.320> all" }, { "start": 1666.43, "duration": 0.0, "text": "parameters to the instructions, like all" }, { "start": 1666.44, "duration": 0.0, "text": "parameters to the instructions, like all these<00:27:46.600> things." }, { "start": 1667.87, "duration": 0.0, "text": "these things." }, { "start": 1667.88, "duration": 0.0, "text": "these things. And<00:27:48.360> uh<00:27:48.480> you<00:27:48.560> can<00:27:48.680> see<00:27:48.840> it<00:27:48.960> corre-<00:27:49.280> it" }, { "start": 1669.35, "duration": 0.0, "text": "And uh you can see it corre- it" }, { "start": 1669.36, "duration": 0.0, "text": "And uh you can see it corre- it automatically<00:27:49.800> correlates<00:27:50.320> like<00:27:50.520> with" }, { "start": 1671.31, "duration": 0.0, "text": "automatically correlates like with" }, { "start": 1671.32, "duration": 0.0, "text": "automatically correlates like with source<00:27:51.600> code<00:27:51.880> like<00:27:52.040> you<00:27:52.160> can<00:27:52.280> see<00:27:52.600> like<00:27:52.800> which" }, { "start": 1673.03, "duration": 0.0, "text": "source code like you can see like which" }, { "start": 1673.04, "duration": 0.0, "text": "source code like you can see like which instructions<00:27:53.600> map<00:27:53.800> to<00:27:53.880> which<00:27:54.080> line<00:27:54.280> of<00:27:54.360> source" }, { "start": 1674.59, "duration": 0.0, "text": "instructions map to which line of source" }, { "start": 1674.6, "duration": 0.0, "text": "instructions map to which line of source code<00:27:54.800> and<00:27:54.920> so<00:27:55.120> on.<00:27:55.840> Um<00:27:55.960> and<00:27:56.080> then<00:27:56.200> as<00:27:56.400> I<00:27:56.440> step" }, { "start": 1676.87, "duration": 0.0, "text": "code and so on. Um and then as I step" }, { "start": 1676.88, "duration": 0.0, "text": "code and so on. Um and then as I step like<00:27:57.040> you'll<00:27:57.200> see<00:27:57.360> that<00:27:57.520> the<00:27:57.640> thread<00:27:58.280> like" }, { "start": 1678.39, "duration": 0.0, "text": "like you'll see that the thread like" }, { "start": 1678.4, "duration": 0.0, "text": "like you'll see that the thread like goes<00:27:58.640> through<00:27:59.280> um" }, { "start": 1680.39, "duration": 0.0, "text": "goes through um" }, { "start": 1680.4, "duration": 0.0, "text": "goes through um goes<00:28:00.640> through<00:28:00.760> the<00:28:00.840> code<00:28:01.080> here." }, { "start": 1681.91, "duration": 0.0, "text": "goes through the code here." }, { "start": 1681.92, "duration": 0.0, "text": "goes through the code here. Um" }, { "start": 1682.83, "duration": 0.0, "text": "Um" }, { "start": 1682.84, "duration": 0.0, "text": "Um this<00:28:03.080> is<00:28:03.200> also<00:28:03.440> just<00:28:03.640> a<00:28:03.680> visualizer,<00:28:04.400> right?" }, { "start": 1684.59, "duration": 0.0, "text": "this is also just a visualizer, right?" }, { "start": 1684.6, "duration": 0.0, "text": "this is also just a visualizer, right? So<00:28:04.720> I<00:28:04.760> could<00:28:04.920> just<00:28:05.320> do<00:28:05.760> like<00:28:06.280> disasm<00:28:06.960> and<00:28:07.080> I" }, { "start": 1687.15, "duration": 0.0, "text": "So I could just do like disasm and I" }, { "start": 1687.16, "duration": 0.0, "text": "So I could just do like disasm and I could<00:28:07.280> put<00:28:07.440> in<00:28:07.520> like<00:28:07.720> a<00:28:08.400> like<00:28:08.520> my<00:28:08.680> mule<00:28:08.920> main" }, { "start": 1689.15, "duration": 0.0, "text": "could put in like a like my mule main" }, { "start": 1689.16, "duration": 0.0, "text": "could put in like a like my mule main function" }, { "start": 1690.63, "duration": 0.0, "text": "function" }, { "start": 1690.64, "duration": 0.0, "text": "function and<00:28:11.320> if<00:28:11.480> I<00:28:12.160> go<00:28:12.360> to<00:28:12.520> mule<00:28:12.760> main<00:28:13.200> here" }, { "start": 1695.15, "duration": 0.0, "text": "and if I go to mule main here" }, { "start": 1695.16, "duration": 0.0, "text": "and if I go to mule main here uh<00:28:15.400> you<00:28:15.520> can<00:28:15.640> see<00:28:15.840> that" }, { "start": 1696.91, "duration": 0.0, "text": "uh you can see that" }, { "start": 1696.92, "duration": 0.0, "text": "uh you can see that uh<00:28:16.960> let<00:28:17.080> me<00:28:17.160> pull<00:28:17.320> this<00:28:17.440> out<00:28:17.560> as<00:28:17.680> its<00:28:17.800> own<00:28:17.960> tab." }, { "start": 1698.15, "duration": 0.0, "text": "uh let me pull this out as its own tab." }, { "start": 1698.16, "duration": 0.0, "text": "uh let me pull this out as its own tab. So<00:28:18.280> we're<00:28:18.360> just<00:28:18.600> viewing<00:28:18.840> the<00:28:18.920> disassembly<00:28:19.560> of" }, { "start": 1699.87, "duration": 0.0, "text": "So we're just viewing the disassembly of" }, { "start": 1699.88, "duration": 0.0, "text": "So we're just viewing the disassembly of mule<00:28:20.120> main" }, { "start": 1701.03, "duration": 0.0, "text": "mule main" }, { "start": 1701.04, "duration": 0.0, "text": "mule main and<00:28:21.680> we<00:28:21.840> can<00:28:22.000> see<00:28:22.200> like<00:28:22.720> that's<00:28:22.960> just<00:28:23.240> going<00:28:23.360> to" }, { "start": 1703.47, "duration": 0.0, "text": "and we can see like that's just going to" }, { "start": 1703.48, "duration": 0.0, "text": "and we can see like that's just going to do<00:28:23.720> exactly<00:28:24.120> what<00:28:24.200> I<00:28:24.240> told<00:28:24.480> it<00:28:24.600> to.<00:28:24.720> It's<00:28:24.880> like" }, { "start": 1705.03, "duration": 0.0, "text": "do exactly what I told it to. It's like" }, { "start": 1705.04, "duration": 0.0, "text": "do exactly what I told it to. It's like disassemble<00:28:25.560> mule<00:28:25.720> main<00:28:26.120> and<00:28:26.280> show<00:28:26.440> me<00:28:27.160> what" }, { "start": 1707.27, "duration": 0.0, "text": "disassemble mule main and show me what" }, { "start": 1707.28, "duration": 0.0, "text": "disassemble mule main and show me what it<00:28:27.360> looks<00:28:27.520> like<00:28:27.720> and<00:28:27.960> and" }, { "start": 1709.11, "duration": 0.0, "text": "it looks like and and" }, { "start": 1709.12, "duration": 0.0, "text": "it looks like and and here<00:28:29.320> it<00:28:29.400> is." }, { "start": 1710.79, "duration": 0.0, "text": "here it is." }, { "start": 1710.8, "duration": 0.0, "text": "here it is. Um" }, { "start": 1712.63, "duration": 0.0, "text": "Um" }, { "start": 1712.64, "duration": 0.0, "text": "Um so" }, { "start": 1714.47, "duration": 0.0, "text": "so" }, { "start": 1714.48, "duration": 0.0, "text": "so then<00:28:35.760> the<00:28:36.000> next<00:28:36.280> thing<00:28:36.480> I<00:28:36.640> should<00:28:36.880> probably" }, { "start": 1717.23, "duration": 0.0, "text": "then the next thing I should probably" }, { "start": 1717.24, "duration": 0.0, "text": "then the next thing I should probably show<00:28:37.680> is" }, { "start": 1719.23, "duration": 0.0, "text": "show is" }, { "start": 1719.24, "duration": 0.0, "text": "show is uh<00:28:39.320> we've<00:28:39.400> got<00:28:39.560> other<00:28:39.720> kinds<00:28:39.960> of<00:28:40.000> visualizers" }, { "start": 1720.47, "duration": 0.0, "text": "uh we've got other kinds of visualizers" }, { "start": 1720.48, "duration": 0.0, "text": "uh we've got other kinds of visualizers like<00:28:40.880> um<00:28:41.360> like<00:28:41.480> a<00:28:41.520> bit<00:28:41.680> map<00:28:41.880> visualizer<00:28:42.320> for" }, { "start": 1722.43, "duration": 0.0, "text": "like um like a bit map visualizer for" }, { "start": 1722.44, "duration": 0.0, "text": "like um like a bit map visualizer for example.<00:28:42.800> So<00:28:42.880> if<00:28:42.960> I've<00:28:43.080> got<00:28:43.200> a<00:28:43.240> bunch<00:28:43.440> of<00:28:43.480> data" }, { "start": 1723.83, "duration": 0.0, "text": "example. So if I've got a bunch of data" }, { "start": 1723.84, "duration": 0.0, "text": "example. So if I've got a bunch of data like<00:28:44.200> U32s<00:28:44.880> that<00:28:45.000> that<00:28:45.200> to<00:28:45.400> interpret<00:28:45.800> as" }, { "start": 1725.91, "duration": 0.0, "text": "like U32s that that to interpret as" }, { "start": 1725.92, "duration": 0.0, "text": "like U32s that that to interpret as pixels" }, { "start": 1727.15, "duration": 0.0, "text": "pixels" }, { "start": 1727.16, "duration": 0.0, "text": "pixels I<00:28:47.240> can<00:28:47.440> say,<00:28:47.680> \"Hey,<00:28:47.960> like<00:28:48.200> I<00:28:48.280> actually<00:28:48.560> have<00:28:48.680> a" }, { "start": 1728.71, "duration": 0.0, "text": "I can say, \"Hey, like I actually have a" }, { "start": 1728.72, "duration": 0.0, "text": "I can say, \"Hey, like I actually have a bitmap<00:28:49.480> and<00:28:49.800> my" }, { "start": 1731.51, "duration": 0.0, "text": "bitmap and my" }, { "start": 1731.52, "duration": 0.0, "text": "bitmap and my my<00:28:51.760> pixels<00:28:52.240> for<00:28:52.440> for<00:28:52.560> this<00:28:52.680> bitmap<00:28:53.520> is<00:28:53.640> just" }, { "start": 1733.83, "duration": 0.0, "text": "my pixels for for this bitmap is just" }, { "start": 1733.84, "duration": 0.0, "text": "my pixels for for this bitmap is just this<00:28:54.040> big<00:28:54.280> array<00:28:54.560> of<00:28:54.840> of<00:28:55.200> U32s<00:28:55.760> called<00:28:55.960> pixels." }, { "start": 1736.87, "duration": 0.0, "text": "this big array of of U32s called pixels." }, { "start": 1736.88, "duration": 0.0, "text": "this big array of of U32s called pixels. I<00:28:56.960> happen<00:28:57.200> to<00:28:57.320> know<00:28:57.520> that<00:28:57.680> the<00:28:57.760> dimensions<00:28:58.200> of" }, { "start": 1738.31, "duration": 0.0, "text": "I happen to know that the dimensions of" }, { "start": 1738.32, "duration": 0.0, "text": "I happen to know that the dimensions of this<00:28:58.480> thing<00:28:58.840> are<00:28:59.040> 18<00:28:59.320> by<00:28:59.480> 18,<00:28:59.920> but<00:29:00.040> you<00:29:00.120> can<00:29:00.240> put" }, { "start": 1740.35, "duration": 0.0, "text": "this thing are 18 by 18, but you can put" }, { "start": 1740.36, "duration": 0.0, "text": "this thing are 18 by 18, but you can put in<00:29:00.480> whatever<00:29:00.720> you<00:29:00.800> want<00:29:01.000> there.\"" }, { "start": 1741.99, "duration": 0.0, "text": "in whatever you want there.\"" }, { "start": 1742.0, "duration": 0.0, "text": "in whatever you want there.\" And<00:29:02.080> then<00:29:02.160> if<00:29:02.280> you<00:29:02.360> open<00:29:02.600> that,<00:29:03.320> you<00:29:03.440> get<00:29:03.560> a" }, { "start": 1743.59, "duration": 0.0, "text": "And then if you open that, you get a" }, { "start": 1743.6, "duration": 0.0, "text": "And then if you open that, you get a little<00:29:03.840> bitmap<00:29:04.160> visualizer." }, { "start": 1746.03, "duration": 0.0, "text": "little bitmap visualizer." }, { "start": 1746.04, "duration": 0.0, "text": "little bitmap visualizer. Um<00:29:06.760> and<00:29:07.040> you<00:29:07.160> can<00:29:07.720> just<00:29:07.920> like<00:29:08.080> everything,<00:29:08.400> you" }, { "start": 1748.47, "duration": 0.0, "text": "Um and you can just like everything, you" }, { "start": 1748.48, "duration": 0.0, "text": "Um and you can just like everything, you can<00:29:08.600> pull<00:29:08.760> it<00:29:08.880> out<00:29:09.120> as<00:29:09.240> its<00:29:09.400> own<00:29:09.520> tab.<00:29:10.160> An" }, { "start": 1750.23, "duration": 0.0, "text": "can pull it out as its own tab. An" }, { "start": 1750.24, "duration": 0.0, "text": "can pull it out as its own tab. An alternative<00:29:10.800> way<00:29:10.960> of<00:29:11.080> creating<00:29:11.400> this<00:29:11.520> tab" }, { "start": 1751.75, "duration": 0.0, "text": "alternative way of creating this tab" }, { "start": 1751.76, "duration": 0.0, "text": "alternative way of creating this tab would<00:29:11.840> have<00:29:11.960> been<00:29:12.640> just<00:29:12.840> create<00:29:13.040> a<00:29:13.080> bitmap<00:29:13.480> tab" }, { "start": 1753.87, "duration": 0.0, "text": "would have been just create a bitmap tab" }, { "start": 1753.88, "duration": 0.0, "text": "would have been just create a bitmap tab and<00:29:14.040> put<00:29:14.160> in<00:29:14.280> here<00:29:15.040> pixels<00:29:15.720> 18<00:29:16.120> by<00:29:16.320> 18.<00:29:16.960> These" }, { "start": 1757.11, "duration": 0.0, "text": "and put in here pixels 18 by 18. These" }, { "start": 1757.12, "duration": 0.0, "text": "and put in here pixels 18 by 18. These are<00:29:17.240> two<00:29:17.880> things<00:29:18.360> that<00:29:18.520> mean<00:29:18.680> exactly<00:29:19.120> the" }, { "start": 1759.19, "duration": 0.0, "text": "are two things that mean exactly the" }, { "start": 1759.2, "duration": 0.0, "text": "are two things that mean exactly the same<00:29:19.440> thing." }, { "start": 1760.47, "duration": 0.0, "text": "same thing." }, { "start": 1760.48, "duration": 0.0, "text": "same thing. So," }, { "start": 1761.47, "duration": 0.0, "text": "So," }, { "start": 1761.48, "duration": 0.0, "text": "So, um" }, { "start": 1762.23, "duration": 0.0, "text": "um" }, { "start": 1762.24, "duration": 0.0, "text": "um you<00:29:22.280> can<00:29:22.400> see<00:29:22.520> it's<00:29:22.640> just<00:29:22.800> like<00:29:23.000> initialized" }, { "start": 1763.43, "duration": 0.0, "text": "you can see it's just like initialized" }, { "start": 1763.44, "duration": 0.0, "text": "you can see it's just like initialized as<00:29:23.560> basically<00:29:23.920> just<00:29:24.080> garbage<00:29:24.400> right<00:29:24.560> now,<00:29:24.880> but" }, { "start": 1764.99, "duration": 0.0, "text": "as basically just garbage right now, but" }, { "start": 1765.0, "duration": 0.0, "text": "as basically just garbage right now, but as<00:29:25.200> I<00:29:25.280> step,<00:29:25.920> you<00:29:26.040> can<00:29:26.200> see<00:29:26.440> these<00:29:26.680> things" }, { "start": 1767.31, "duration": 0.0, "text": "as I step, you can see these things" }, { "start": 1767.32, "duration": 0.0, "text": "as I step, you can see these things start<00:29:27.600> to<00:29:28.120> start<00:29:28.320> to<00:29:28.800> see<00:29:28.920> these<00:29:29.040> pixels<00:29:29.320> start" }, { "start": 1769.51, "duration": 0.0, "text": "start to start to see these pixels start" }, { "start": 1769.52, "duration": 0.0, "text": "start to start to see these pixels start to<00:29:29.600> fill<00:29:29.840> out.<00:29:30.520> Um" }, { "start": 1772.11, "duration": 0.0, "text": "to fill out. Um" }, { "start": 1772.12, "duration": 0.0, "text": "to fill out. Um and<00:29:33.000> here's<00:29:33.320> a<00:29:33.360> loop<00:29:33.720> which<00:29:33.920> does<00:29:34.120> something" }, { "start": 1774.35, "duration": 0.0, "text": "and here's a loop which does something" }, { "start": 1774.36, "duration": 0.0, "text": "and here's a loop which does something to<00:29:34.440> all<00:29:34.520> the<00:29:34.600> pixels,<00:29:35.000> so<00:29:35.120> I<00:29:35.160> can<00:29:35.280> set<00:29:35.440> a" }, { "start": 1775.47, "duration": 0.0, "text": "to all the pixels, so I can set a" }, { "start": 1775.48, "duration": 0.0, "text": "to all the pixels, so I can set a breakpoint<00:29:35.880> here.<00:29:36.120> I'll<00:29:36.200> hit<00:29:36.320> F5,<00:29:36.840> run<00:29:37.000> to" }, { "start": 1777.07, "duration": 0.0, "text": "breakpoint here. I'll hit F5, run to" }, { "start": 1777.08, "duration": 0.0, "text": "breakpoint here. I'll hit F5, run to that<00:29:37.240> breakpoint.<00:29:37.960> It<00:29:38.160> like<00:29:38.440> shifted<00:29:38.840> all<00:29:38.960> the" }, { "start": 1779.03, "duration": 0.0, "text": "that breakpoint. It like shifted all the" }, { "start": 1779.04, "duration": 0.0, "text": "that breakpoint. It like shifted all the pixels<00:29:39.400> over.<00:29:40.360> Um" }, { "start": 1781.15, "duration": 0.0, "text": "pixels over. Um" }, { "start": 1781.16, "duration": 0.0, "text": "pixels over. Um uh<00:29:41.440> shifted<00:29:41.800> the<00:29:41.880> components<00:29:42.360> of<00:29:42.440> the<00:29:42.520> color" }, { "start": 1782.95, "duration": 0.0, "text": "uh shifted the components of the color" }, { "start": 1782.96, "duration": 0.0, "text": "uh shifted the components of the color of<00:29:43.160> of<00:29:43.240> the<00:29:43.320> pixel<00:29:43.600> colors<00:29:43.880> over.<00:29:44.640> Does<00:29:44.920> same" }, { "start": 1785.11, "duration": 0.0, "text": "of of the pixel colors over. Does same" }, { "start": 1785.12, "duration": 0.0, "text": "of of the pixel colors over. Does same thing<00:29:45.320> here<00:29:45.800> and<00:29:45.920> then<00:29:46.080> finally<00:29:46.440> does<00:29:46.640> it<00:29:46.720> once" }, { "start": 1786.87, "duration": 0.0, "text": "thing here and then finally does it once" }, { "start": 1786.88, "duration": 0.0, "text": "thing here and then finally does it once again<00:29:47.200> to<00:29:47.320> return<00:29:47.600> it<00:29:47.680> back<00:29:47.880> to<00:29:47.960> its<00:29:48.080> original" }, { "start": 1788.39, "duration": 0.0, "text": "again to return it back to its original" }, { "start": 1788.4, "duration": 0.0, "text": "again to return it back to its original values." }, { "start": 1789.47, "duration": 0.0, "text": "values." }, { "start": 1789.48, "duration": 0.0, "text": "values. Um" }, { "start": 1790.83, "duration": 0.0, "text": "Um" }, { "start": 1790.84, "duration": 0.0, "text": "Um So,<00:29:50.960> yeah.<00:29:51.520> Finally,<00:29:52.600> um" }, { "start": 1794.055, "duration": 0.0, "text": "So, yeah. Finally, um" }, { "start": 1794.065, "duration": 0.0, "text": "So, yeah. Finally, um >> [laughter]" }, { "start": 1794.91, "duration": 0.0, "text": ">> [laughter]" }, { "start": 1794.92, "duration": 0.0, "text": ">> [laughter] >> there's<00:29:55.040> this<00:29:55.240> one<00:29:55.560> which<00:29:55.800> is<00:29:56.000> a<00:29:56.080> bunch<00:29:56.320> you" }, { "start": 1796.43, "duration": 0.0, "text": ">> there's this one which is a bunch you" }, { "start": 1796.44, "duration": 0.0, "text": ">> there's this one which is a bunch you can<00:29:56.560> tell<00:29:57.040> I<00:29:57.080> I" }, { "start": 1797.75, "duration": 0.0, "text": "can tell I I" }, { "start": 1797.76, "duration": 0.0, "text": "can tell I I I<00:29:57.880> say<00:29:58.080> 3D<00:29:58.440> geometry.<00:29:59.080> I've<00:29:59.200> got<00:29:59.320> a<00:29:59.360> bunch<00:29:59.520> of" }, { "start": 1799.55, "duration": 0.0, "text": "I say 3D geometry. I've got a bunch of" }, { "start": 1799.56, "duration": 0.0, "text": "I say 3D geometry. I've got a bunch of vertex<00:29:59.920> data." }, { "start": 1800.95, "duration": 0.0, "text": "vertex data." }, { "start": 1800.96, "duration": 0.0, "text": "vertex data. Um<00:30:01.000> I've<00:30:01.120> got<00:30:01.680> some<00:30:01.880> index<00:30:02.200> data<00:30:03.080> and<00:30:03.960> uh" }, { "start": 1804.67, "duration": 0.0, "text": "Um I've got some index data and uh" }, { "start": 1804.68, "duration": 0.0, "text": "Um I've got some index data and uh if<00:30:04.800> I<00:30:04.880> So,<00:30:05.040> if<00:30:05.160> I<00:30:05.280> want<00:30:05.520> to<00:30:05.640> run<00:30:05.920> through<00:30:06.520> the" }, { "start": 1807.55, "duration": 0.0, "text": "if I So, if I want to run through the" }, { "start": 1807.56, "duration": 0.0, "text": "if I So, if I want to run through the the<00:30:07.680> initialization<00:30:08.360> of<00:30:08.440> those<00:30:08.560> big<00:30:08.760> tables" }, { "start": 1809.43, "duration": 0.0, "text": "the initialization of those big tables" }, { "start": 1809.44, "duration": 0.0, "text": "the initialization of those big tables and<00:30:09.720> this<00:30:09.840> is<00:30:09.920> a<00:30:09.960> pretty<00:30:10.160> complicated" }, { "start": 1810.59, "duration": 0.0, "text": "and this is a pretty complicated" }, { "start": 1810.6, "duration": 0.0, "text": "and this is a pretty complicated expression,<00:30:11.040> so<00:30:11.160> we've<00:30:11.280> got<00:30:11.840> this<00:30:12.040> geo<00:30:12.400> 3D" }, { "start": 1813.07, "duration": 0.0, "text": "expression, so we've got this geo 3D" }, { "start": 1813.08, "duration": 0.0, "text": "expression, so we've got this geo 3D view<00:30:13.640> which<00:30:13.760> is<00:30:13.840> applied<00:30:14.160> to<00:30:14.240> the<00:30:14.360> index" }, { "start": 1814.63, "duration": 0.0, "text": "view which is applied to the index" }, { "start": 1814.64, "duration": 0.0, "text": "view which is applied to the index buffer<00:30:15.160> and<00:30:15.280> then<00:30:15.400> you<00:30:15.440> have<00:30:15.560> a<00:30:15.600> vertex" }, { "start": 1815.95, "duration": 0.0, "text": "buffer and then you have a vertex" }, { "start": 1815.96, "duration": 0.0, "text": "buffer and then you have a vertex buffer." }, { "start": 1817.15, "duration": 0.0, "text": "buffer." }, { "start": 1817.16, "duration": 0.0, "text": "buffer. But<00:30:17.240> anyways," }, { "start": 1818.55, "duration": 0.0, "text": "But anyways," }, { "start": 1818.56, "duration": 0.0, "text": "But anyways, uh<00:30:18.640> then<00:30:18.880> you<00:30:19.000> get<00:30:19.200> this<00:30:19.560> and<00:30:19.680> that's<00:30:19.880> the" }, { "start": 1819.95, "duration": 0.0, "text": "uh then you get this and that's the" }, { "start": 1819.96, "duration": 0.0, "text": "uh then you get this and that's the actual" }, { "start": 1821.11, "duration": 0.0, "text": "actual" }, { "start": 1821.12, "duration": 0.0, "text": "actual um<00:30:21.680> that's<00:30:21.880> the<00:30:21.960> actual<00:30:22.640> like<00:30:22.840> geometry<00:30:23.280> data." }, { "start": 1823.75, "duration": 0.0, "text": "um that's the actual like geometry data." }, { "start": 1823.76, "duration": 0.0, "text": "um that's the actual like geometry data. So," }, { "start": 1825.11, "duration": 0.0, "text": "So," }, { "start": 1825.12, "duration": 0.0, "text": "So, um" }, { "start": 1826.63, "duration": 0.0, "text": "um" }, { "start": 1826.64, "duration": 0.0, "text": "um So,<00:30:26.720> yeah,<00:30:26.840> those<00:30:27.040> are<00:30:27.120> the<00:30:27.200> fancier" }, { "start": 1827.59, "duration": 0.0, "text": "So, yeah, those are the fancier" }, { "start": 1827.6, "duration": 0.0, "text": "So, yeah, those are the fancier visualizers.<00:30:28.440> Um<00:30:28.840> the<00:30:28.960> geometry<00:30:29.400> one<00:30:29.520> is" }, { "start": 1829.63, "duration": 0.0, "text": "visualizers. Um the geometry one is" }, { "start": 1829.64, "duration": 0.0, "text": "visualizers. Um the geometry one is still<00:30:30.120> like<00:30:30.360> all<00:30:30.520> of<00:30:30.600> these<00:30:30.760> are<00:30:30.880> pretty<00:30:31.080> much" }, { "start": 1831.27, "duration": 0.0, "text": "still like all of these are pretty much" }, { "start": 1831.28, "duration": 0.0, "text": "still like all of these are pretty much heavily<00:30:31.560> in<00:30:31.680> progress.<00:30:32.360> The<00:30:32.440> ones<00:30:32.640> that<00:30:32.800> are" }, { "start": 1833.47, "duration": 0.0, "text": "heavily in progress. The ones that are" }, { "start": 1833.48, "duration": 0.0, "text": "heavily in progress. The ones that are not<00:30:33.840> as<00:30:33.960> heavily<00:30:34.200> in<00:30:34.320> progress<00:30:34.680> are<00:30:34.760> the<00:30:34.840> ones" }, { "start": 1835.03, "duration": 0.0, "text": "not as heavily in progress are the ones" }, { "start": 1835.04, "duration": 0.0, "text": "not as heavily in progress are the ones that<00:30:35.160> are<00:30:35.280> like<00:30:35.480> super<00:30:35.800> super<00:30:36.080> common.<00:30:36.440> Like" }, { "start": 1836.59, "duration": 0.0, "text": "that are like super super common. Like" }, { "start": 1836.6, "duration": 0.0, "text": "that are like super super common. Like obviously<00:30:36.880> the<00:30:36.960> watch<00:30:37.160> window,<00:30:37.960> I<00:30:38.040> put<00:30:38.160> a<00:30:38.200> lot" }, { "start": 1838.35, "duration": 0.0, "text": "obviously the watch window, I put a lot" }, { "start": 1838.36, "duration": 0.0, "text": "obviously the watch window, I put a lot of<00:30:38.440> work<00:30:38.560> into<00:30:38.720> the<00:30:38.800> memory<00:30:39.120> view<00:30:39.360> cuz<00:30:39.480> these" }, { "start": 1839.63, "duration": 0.0, "text": "of work into the memory view cuz these" }, { "start": 1839.64, "duration": 0.0, "text": "of work into the memory view cuz these are<00:30:39.720> really<00:30:39.920> common<00:30:40.240> debugging<00:30:40.640> features" }, { "start": 1840.95, "duration": 0.0, "text": "are really common debugging features" }, { "start": 1840.96, "duration": 0.0, "text": "are really common debugging features that<00:30:41.080> people<00:30:41.280> expect,<00:30:41.760> but<00:30:41.960> obviously<00:30:42.360> long" }, { "start": 1842.59, "duration": 0.0, "text": "that people expect, but obviously long" }, { "start": 1842.6, "duration": 0.0, "text": "that people expect, but obviously long term<00:30:42.920> the<00:30:43.160> the<00:30:43.280> idea<00:30:43.560> is<00:30:43.720> like,<00:30:43.920> \"Hey,<00:30:44.080> this" }, { "start": 1844.23, "duration": 0.0, "text": "term the the idea is like, \"Hey, this" }, { "start": 1844.24, "duration": 0.0, "text": "term the the idea is like, \"Hey, this bitmap<00:30:44.480> visualizer<00:30:44.880> will<00:30:45.000> just<00:30:45.160> end<00:30:45.320> up<00:30:45.400> being" }, { "start": 1846.19, "duration": 0.0, "text": "bitmap visualizer will just end up being" }, { "start": 1846.2, "duration": 0.0, "text": "bitmap visualizer will just end up being like<00:30:46.640> having<00:30:46.920> all<00:30:47.000> the<00:30:47.080> things<00:30:47.320> that<00:30:47.440> you" }, { "start": 1847.51, "duration": 0.0, "text": "like having all the things that you" }, { "start": 1847.52, "duration": 0.0, "text": "like having all the things that you really<00:30:47.720> want<00:30:48.240> um<00:30:48.680> for<00:30:49.040> for<00:30:49.600> dealing<00:30:49.840> with" }, { "start": 1849.95, "duration": 0.0, "text": "really want um for for dealing with" }, { "start": 1849.96, "duration": 0.0, "text": "really want um for for dealing with bitmap<00:30:50.280> data.\"" }, { "start": 1851.27, "duration": 0.0, "text": "bitmap data.\"" }, { "start": 1851.28, "duration": 0.0, "text": "bitmap data.\" Um<00:30:51.400> and<00:30:51.520> then<00:30:51.640> in<00:30:51.680> the<00:30:51.760> future<00:30:52.000> we'll<00:30:52.120> have" }, { "start": 1852.27, "duration": 0.0, "text": "Um and then in the future we'll have" }, { "start": 1852.28, "duration": 0.0, "text": "Um and then in the future we'll have tons<00:30:52.520> of<00:30:52.600> other<00:30:52.760> kinds<00:30:53.040> of<00:30:53.120> visualizers<00:30:53.720> like," }, { "start": 1854.11, "duration": 0.0, "text": "tons of other kinds of visualizers like," }, { "start": 1854.12, "duration": 0.0, "text": "tons of other kinds of visualizers like, you<00:30:54.200> know,<00:30:54.320> for<00:30:54.440> sound<00:30:54.800> data<00:30:55.240> and<00:30:55.640> the<00:30:55.840> 3D" }, { "start": 1856.11, "duration": 0.0, "text": "you know, for sound data and the 3D" }, { "start": 1856.12, "duration": 0.0, "text": "you know, for sound data and the 3D geometry<00:30:56.480> one<00:30:56.640> will<00:30:56.800> become<00:30:57.040> a<00:30:57.080> lot<00:30:57.240> more" }, { "start": 1857.35, "duration": 0.0, "text": "geometry one will become a lot more" }, { "start": 1857.36, "duration": 0.0, "text": "geometry one will become a lot more sophisticated<00:30:58.120> and<00:30:58.480> and<00:30:58.760> 2D<00:30:59.040> plots<00:30:59.480> and<00:30:59.560> like" }, { "start": 1859.71, "duration": 0.0, "text": "sophisticated and and 2D plots and like" }, { "start": 1859.72, "duration": 0.0, "text": "sophisticated and and 2D plots and like all<00:30:59.800> these<00:30:59.960> kinds<00:31:00.160> of<00:31:00.240> things<00:31:00.440> are<00:31:00.520> on<00:31:00.640> the" }, { "start": 1860.71, "duration": 0.0, "text": "all these kinds of things are on the" }, { "start": 1860.72, "duration": 0.0, "text": "all these kinds of things are on the table." }, { "start": 1861.75, "duration": 0.0, "text": "table." }, { "start": 1861.76, "duration": 0.0, "text": "table. Um<00:31:02.280> that's<00:31:02.440> what<00:31:02.520> the<00:31:02.600> whole<00:31:02.800> architecture<00:31:03.320> is" }, { "start": 1863.43, "duration": 0.0, "text": "Um that's what the whole architecture is" }, { "start": 1863.44, "duration": 0.0, "text": "Um that's what the whole architecture is for.<00:31:04.200> Um" }, { "start": 1864.47, "duration": 0.0, "text": "for. Um" }, { "start": 1864.48, "duration": 0.0, "text": "for. Um >> So,<00:31:04.640> it's<00:31:04.840> like<00:31:05.520> Rad<00:31:05.760> Debugger<00:31:06.240> is<00:31:06.400> like<00:31:06.800> like" }, { "start": 1867.03, "duration": 0.0, "text": ">> So, it's like Rad Debugger is like like" }, { "start": 1867.04, "duration": 0.0, "text": ">> So, it's like Rad Debugger is like like a<00:31:07.080> mini<00:31:07.440> game<00:31:07.840> engine." }, { "start": 1870.036, "duration": 0.0, "text": "a mini game engine." }, { "start": 1870.046, "duration": 0.0, "text": "a mini game engine. >> [laughter]" }, { "start": 1870.79, "duration": 0.0, "text": ">> [laughter]" }, { "start": 1870.8, "duration": 0.0, "text": ">> [laughter] >> You<00:31:10.920> could<00:31:11.320> You<00:31:11.440> could<00:31:11.760> think<00:31:11.960> of<00:31:12.040> it<00:31:12.120> that" }, { "start": 1872.31, "duration": 0.0, "text": ">> You could You could think of it that" }, { "start": 1872.32, "duration": 0.0, "text": ">> You could You could think of it that way,<00:31:12.560> maybe.<00:31:12.960> I<00:31:13.040> mean,<00:31:13.520> you<00:31:13.640> know,<00:31:13.800> I<00:31:13.840> I<00:31:14.560> I" }, { "start": 1874.63, "duration": 0.0, "text": "way, maybe. I mean, you know, I I I" }, { "start": 1874.64, "duration": 0.0, "text": "way, maybe. I mean, you know, I I I wouldn't<00:31:14.800> be<00:31:14.920> so<00:31:15.040> presumptuous<00:31:15.600> as<00:31:15.760> to<00:31:15.840> say" }, { "start": 1876.03, "duration": 0.0, "text": "wouldn't be so presumptuous as to say" }, { "start": 1876.04, "duration": 0.0, "text": "wouldn't be so presumptuous as to say that<00:31:16.280> unlike<00:31:16.640> the<00:31:16.920> people<00:31:17.200> at<00:31:17.320> Anthropic,<00:31:17.840> but" }, { "start": 1878.75, "duration": 0.0, "text": "that unlike the people at Anthropic, but" }, { "start": 1878.76, "duration": 0.0, "text": "that unlike the people at Anthropic, but um<00:31:19.680> about<00:31:20.040> Claude.<00:31:20.600> Uh<00:31:20.840> but<00:31:21.760> it<00:31:21.960> is<00:31:22.120> a<00:31:22.160> lot<00:31:22.480> I" }, { "start": 1882.55, "duration": 0.0, "text": "um about Claude. Uh but it is a lot I" }, { "start": 1882.56, "duration": 0.0, "text": "um about Claude. Uh but it is a lot I would<00:31:22.720> say<00:31:22.880> it's<00:31:23.000> a<00:31:23.040> lot<00:31:23.280> closer<00:31:23.640> to<00:31:23.800> a<00:31:23.880> little" }, { "start": 1884.07, "duration": 0.0, "text": "would say it's a lot closer to a little" }, { "start": 1884.08, "duration": 0.0, "text": "would say it's a lot closer to a little game<00:31:24.320> engine<00:31:24.640> than<00:31:25.120> than<00:31:25.440> maybe<00:31:25.680> Claude<00:31:25.960> Code" }, { "start": 1886.19, "duration": 0.0, "text": "game engine than than maybe Claude Code" }, { "start": 1886.2, "duration": 0.0, "text": "game engine than than maybe Claude Code is,<00:31:26.360> but" }, { "start": 1888.11, "duration": 0.0, "text": "is, but" }, { "start": 1888.12, "duration": 0.0, "text": "is, but but<00:31:28.240> anyways," }, { "start": 1889.27, "duration": 0.0, "text": "but anyways," }, { "start": 1889.28, "duration": 0.0, "text": "but anyways, um" }, { "start": 1889.99, "duration": 0.0, "text": "um" }, { "start": 1890.0, "duration": 0.0, "text": "um so<00:31:30.520> uh<00:31:30.640> I<00:31:30.680> guess<00:31:30.920> one<00:31:31.120> other<00:31:31.320> thing<00:31:31.520> that<00:31:31.640> I" }, { "start": 1891.67, "duration": 0.0, "text": "so uh I guess one other thing that I" }, { "start": 1891.68, "duration": 0.0, "text": "so uh I guess one other thing that I should<00:31:32.040> point<00:31:32.320> out<00:31:32.600> is<00:31:33.080> um<00:31:33.280> some<00:31:33.440> of<00:31:33.520> these" }, { "start": 1893.67, "duration": 0.0, "text": "should point out is um some of these" }, { "start": 1893.68, "duration": 0.0, "text": "should point out is um some of these things<00:31:33.880> which<00:31:34.000> I'm<00:31:34.120> sure<00:31:34.400> people<00:31:34.680> in<00:31:34.760> the<00:31:34.800> chat" }, { "start": 1895.03, "duration": 0.0, "text": "things which I'm sure people in the chat" }, { "start": 1895.04, "duration": 0.0, "text": "things which I'm sure people in the chat have<00:31:35.160> probably<00:31:35.560> already<00:31:35.720> spotted,<00:31:36.160> which<00:31:36.280> is" }, { "start": 1896.43, "duration": 0.0, "text": "have probably already spotted, which is" }, { "start": 1896.44, "duration": 0.0, "text": "have probably already spotted, which is like<00:31:36.640> these<00:31:37.160> uh" }, { "start": 1898.75, "duration": 0.0, "text": "like these uh" }, { "start": 1898.76, "duration": 0.0, "text": "like these uh these<00:31:39.000> like<00:31:39.280> in-source<00:31:39.960> annotations<00:31:40.800> of<00:31:41.080> Rad" }, { "start": 1901.31, "duration": 0.0, "text": "these like in-source annotations of Rad" }, { "start": 1901.32, "duration": 0.0, "text": "these like in-source annotations of Rad Debugger<00:31:41.840> info.<00:31:42.520> So,<00:31:42.640> you<00:31:42.720> can<00:31:42.840> see<00:31:43.040> right" }, { "start": 1903.31, "duration": 0.0, "text": "Debugger info. So, you can see right" }, { "start": 1903.32, "duration": 0.0, "text": "Debugger info. So, you can see right here<00:31:43.520> I'm<00:31:43.640> saying<00:31:43.880> Rad<00:31:44.080> DBG<00:31:44.440> entry<00:31:44.760> point<00:31:45.400> mule" }, { "start": 1905.59, "duration": 0.0, "text": "here I'm saying Rad DBG entry point mule" }, { "start": 1905.6, "duration": 0.0, "text": "here I'm saying Rad DBG entry point mule main.<00:31:46.440> Um<00:31:46.960> and<00:31:47.040> you<00:31:47.120> might<00:31:47.240> be<00:31:47.360> wondering" }, { "start": 1907.67, "duration": 0.0, "text": "main. Um and you might be wondering" }, { "start": 1907.68, "duration": 0.0, "text": "main. Um and you might be wondering like," }, { "start": 1908.59, "duration": 0.0, "text": "like," }, { "start": 1908.6, "duration": 0.0, "text": "like, \"What<00:31:48.800> is<00:31:48.920> that<00:31:49.040> about?\"<00:31:49.760> Well,<00:31:49.920> you<00:31:49.960> can<00:31:50.080> see" }, { "start": 1910.19, "duration": 0.0, "text": "\"What is that about?\" Well, you can see" }, { "start": 1910.2, "duration": 0.0, "text": "\"What is that about?\" Well, you can see like<00:31:50.440> when<00:31:50.560> I'm<00:31:50.680> not<00:31:50.920> debugging<00:31:51.280> this" }, { "start": 1911.39, "duration": 0.0, "text": "like when I'm not debugging this" }, { "start": 1911.4, "duration": 0.0, "text": "like when I'm not debugging this program," }, { "start": 1913.03, "duration": 0.0, "text": "program," }, { "start": 1913.04, "duration": 0.0, "text": "program, so<00:31:53.240> you<00:31:53.360> can<00:31:53.480> see<00:31:53.600> I'm<00:31:53.760> I'm<00:31:53.880> debugging<00:31:54.320> this" }, { "start": 1914.59, "duration": 0.0, "text": "so you can see I'm I'm debugging this" }, { "start": 1914.6, "duration": 0.0, "text": "so you can see I'm I'm debugging this mule<00:31:54.840> main.exe," }, { "start": 1916.59, "duration": 0.0, "text": "mule main.exe," }, { "start": 1916.6, "duration": 0.0, "text": "mule main.exe, and<00:31:57.160> um<00:31:57.680> if<00:31:57.800> I<00:31:57.880> step<00:31:58.160> into<00:31:58.400> it,<00:31:59.080> you'll<00:31:59.240> see" }, { "start": 1919.43, "duration": 0.0, "text": "and um if I step into it, you'll see" }, { "start": 1919.44, "duration": 0.0, "text": "and um if I step into it, you'll see that<00:31:59.680> my<00:31:59.880> thread<00:32:00.320> first<00:32:00.720> stops.<00:32:01.200> It<00:32:01.320> says," }, { "start": 1921.47, "duration": 0.0, "text": "that my thread first stops. It says," }, { "start": 1921.48, "duration": 0.0, "text": "that my thread first stops. It says, \"Stopped<00:32:01.840> at<00:32:01.920> entry<00:32:02.160> point.\"<00:32:02.440> And<00:32:02.520> you<00:32:02.560> might" }, { "start": 1922.71, "duration": 0.0, "text": "\"Stopped at entry point.\" And you might" }, { "start": 1922.72, "duration": 0.0, "text": "\"Stopped at entry point.\" And you might see,<00:32:02.920> \"Hey,<00:32:03.120> mule<00:32:03.360> main.\"<00:32:03.600> It's<00:32:03.720> like<00:32:03.880> weird" }, { "start": 1924.39, "duration": 0.0, "text": "see, \"Hey, mule main.\" It's like weird" }, { "start": 1924.4, "duration": 0.0, "text": "see, \"Hey, mule main.\" It's like weird cuz<00:32:04.560> when<00:32:04.680> I<00:32:04.760> learned<00:32:05.000> how<00:32:05.080> to<00:32:05.160> write<00:32:05.400> C,<00:32:05.720> it" }, { "start": 1925.83, "duration": 0.0, "text": "cuz when I learned how to write C, it" }, { "start": 1925.84, "duration": 0.0, "text": "cuz when I learned how to write C, it had<00:32:06.000> to<00:32:06.040> be<00:32:06.240> int<00:32:06.520> main" }, { "start": 1928.07, "duration": 0.0, "text": "had to be int main" }, { "start": 1928.08, "duration": 0.0, "text": "had to be int main uh<00:32:08.480> or,<00:32:08.880> you<00:32:08.960> know,<00:32:09.080> if<00:32:09.160> you're<00:32:09.240> on<00:32:09.360> Windows," }, { "start": 1929.75, "duration": 0.0, "text": "uh or, you know, if you're on Windows," }, { "start": 1929.76, "duration": 0.0, "text": "uh or, you know, if you're on Windows, it's<00:32:09.880> like<00:32:10.240> it's<00:32:10.440> like<00:32:10.640> WinMain,<00:32:11.240> it's<00:32:11.360> like" }, { "start": 1931.47, "duration": 0.0, "text": "it's like it's like WinMain, it's like" }, { "start": 1931.48, "duration": 0.0, "text": "it's like it's like WinMain, it's like the<00:32:11.560> WinMain<00:32:11.880> function.<00:32:12.480> And<00:32:12.640> sure<00:32:12.800> enough," }, { "start": 1933.07, "duration": 0.0, "text": "the WinMain function. And sure enough," }, { "start": 1933.08, "duration": 0.0, "text": "the WinMain function. And sure enough, it's<00:32:13.200> like,<00:32:13.360> \"Hey,<00:32:13.600> if<00:32:13.800> I<00:32:13.960> look<00:32:14.160> at<00:32:14.200> my<00:32:14.320> call" }, { "start": 1934.55, "duration": 0.0, "text": "it's like, \"Hey, if I look at my call" }, { "start": 1934.56, "duration": 0.0, "text": "it's like, \"Hey, if I look at my call stack,<00:32:14.880> I<00:32:14.960> see<00:32:15.280> I<00:32:15.360> have<00:32:15.640> WinMain<00:32:16.000> right<00:32:16.160> here.\"" }, { "start": 1936.79, "duration": 0.0, "text": "stack, I see I have WinMain right here.\"" }, { "start": 1936.8, "duration": 0.0, "text": "stack, I see I have WinMain right here.\" And<00:32:16.920> that<00:32:17.040> is<00:32:17.160> a<00:32:17.240> function.<00:32:17.600> Hey,<00:32:17.760> that's<00:32:17.960> even" }, { "start": 1938.15, "duration": 0.0, "text": "And that is a function. Hey, that's even" }, { "start": 1938.16, "duration": 0.0, "text": "And that is a function. Hey, that's even in<00:32:18.240> the<00:32:18.280> same<00:32:18.480> source<00:32:18.760> file.<00:32:19.000> So,<00:32:19.160> shouldn't" }, { "start": 1939.99, "duration": 0.0, "text": "in the same source file. So, shouldn't" }, { "start": 1940.0, "duration": 0.0, "text": "in the same source file. So, shouldn't in<00:32:20.200> most<00:32:20.440> debuggers<00:32:20.880> if<00:32:21.000> you<00:32:21.120> ran<00:32:21.400> this,<00:32:21.680> you" }, { "start": 1941.75, "duration": 0.0, "text": "in most debuggers if you ran this, you" }, { "start": 1941.76, "duration": 0.0, "text": "in most debuggers if you ran this, you would<00:32:21.880> end<00:32:22.160> you<00:32:22.360> your<00:32:22.520> thread<00:32:22.760> would<00:32:22.880> end<00:32:23.040> up" }, { "start": 1943.15, "duration": 0.0, "text": "would end you your thread would end up" }, { "start": 1943.16, "duration": 0.0, "text": "would end you your thread would end up here,<00:32:23.600> right?" }, { "start": 1945.35, "duration": 0.0, "text": "here, right?" }, { "start": 1945.36, "duration": 0.0, "text": "here, right? And<00:32:25.520> so,<00:32:25.720> that<00:32:26.320> little<00:32:26.760> Rad<00:32:26.960> DBG<00:32:27.280> entry<00:32:27.560> point" }, { "start": 1947.79, "duration": 0.0, "text": "And so, that little Rad DBG entry point" }, { "start": 1947.8, "duration": 0.0, "text": "And so, that little Rad DBG entry point thing<00:32:28.080> is<00:32:28.240> actually<00:32:28.560> sticking<00:32:29.000> something" }, { "start": 1949.31, "duration": 0.0, "text": "thing is actually sticking something" }, { "start": 1949.32, "duration": 0.0, "text": "thing is actually sticking something into<00:32:29.520> the<00:32:29.600> executable<00:32:30.480> that<00:32:30.640> the<00:32:30.720> debugger" }, { "start": 1951.99, "duration": 0.0, "text": "into the executable that the debugger" }, { "start": 1952.0, "duration": 0.0, "text": "into the executable that the debugger um<00:32:32.440> that<00:32:32.560> the<00:32:32.640> debugger<00:32:33.000> reads.<00:32:33.800> And<00:32:33.920> so,<00:32:34.040> the" }, { "start": 1954.07, "duration": 0.0, "text": "um that the debugger reads. And so, the" }, { "start": 1954.08, "duration": 0.0, "text": "um that the debugger reads. And so, the debugger<00:32:34.480> knows,<00:32:34.920> \"Hey,<00:32:35.640> for<00:32:35.800> this<00:32:36.000> program," }, { "start": 1956.51, "duration": 0.0, "text": "debugger knows, \"Hey, for this program," }, { "start": 1956.52, "duration": 0.0, "text": "debugger knows, \"Hey, for this program, the<00:32:36.640> entry<00:32:36.840> point<00:32:37.120> symbol<00:32:37.480> is<00:32:37.640> not<00:32:37.840> just" }, { "start": 1958.03, "duration": 0.0, "text": "the entry point symbol is not just" }, { "start": 1958.04, "duration": 0.0, "text": "the entry point symbol is not just WinMain,<00:32:38.800> it's<00:32:38.960> actually<00:32:39.280> mule<00:32:39.560> main.<00:32:40.160> So," }, { "start": 1960.31, "duration": 0.0, "text": "WinMain, it's actually mule main. So," }, { "start": 1960.32, "duration": 0.0, "text": "WinMain, it's actually mule main. So, this<00:32:40.560> it<00:32:40.680> sticks<00:32:40.960> this<00:32:41.120> thing<00:32:41.360> into<00:32:41.640> the" }, { "start": 1961.75, "duration": 0.0, "text": "this it sticks this thing into the" }, { "start": 1961.76, "duration": 0.0, "text": "this it sticks this thing into the actual<00:32:42.080> executable.<00:32:42.920> In<00:32:43.000> fact,<00:32:43.280> I<00:32:43.320> wonder<00:32:43.600> if" }, { "start": 1963.75, "duration": 0.0, "text": "actual executable. In fact, I wonder if" }, { "start": 1963.76, "duration": 0.0, "text": "actual executable. In fact, I wonder if I<00:32:43.800> can<00:32:43.920> even<00:32:44.120> show<00:32:45.040> like<00:32:45.200> let's<00:32:45.400> do" }, { "start": 1966.87, "duration": 0.0, "text": "I can even show like let's do" }, { "start": 1966.88, "duration": 0.0, "text": "I can even show like let's do radbg<00:32:47.400> markup<00:32:48.040> to<00:32:48.200> I<00:32:48.240> don't<00:32:48.400> have<00:32:48.680> it." }, { "start": 1969.75, "duration": 0.0, "text": "radbg markup to I don't have it." }, { "start": 1969.76, "duration": 0.0, "text": "radbg markup to I don't have it. Uh<00:32:49.960> markup.h,<00:32:50.680> yeah." }, { "start": 1971.75, "duration": 0.0, "text": "Uh markup.h, yeah." }, { "start": 1971.76, "duration": 0.0, "text": "Uh markup.h, yeah. If<00:32:51.880> we<00:32:52.080> look<00:32:52.440> at<00:32:52.600> like<00:32:52.840> what<00:32:53.000> this<00:32:53.160> thing<00:32:53.320> would" }, { "start": 1973.43, "duration": 0.0, "text": "If we look at like what this thing would" }, { "start": 1973.44, "duration": 0.0, "text": "If we look at like what this thing would actually<00:32:53.720> be<00:32:53.920> like<00:32:54.280> uh<00:32:54.800> entry<00:32:55.120> point," }, { "start": 1976.75, "duration": 0.0, "text": "actually be like uh entry point," }, { "start": 1976.76, "duration": 0.0, "text": "actually be like uh entry point, you<00:32:56.800> can<00:32:56.920> see<00:32:57.080> what<00:32:57.280> this<00:32:57.440> macro<00:32:57.800> actually" }, { "start": 1978.07, "duration": 0.0, "text": "you can see what this macro actually" }, { "start": 1978.08, "duration": 0.0, "text": "you can see what this macro actually does<00:32:58.520> is<00:32:58.840> it<00:32:59.000> says<00:32:59.240> radbg<00:33:00.160> exec<00:33:00.520> data,<00:33:00.800> which<00:33:00.960> I" }, { "start": 1981.03, "duration": 0.0, "text": "does is it says radbg exec data, which I" }, { "start": 1981.04, "duration": 0.0, "text": "does is it says radbg exec data, which I can<00:33:01.120> explain<00:33:01.400> what<00:33:01.480> that<00:33:01.720> is.<00:33:02.240> And<00:33:02.360> then<00:33:02.440> it's" }, { "start": 1982.55, "duration": 0.0, "text": "can explain what that is. And then it's" }, { "start": 1982.56, "duration": 0.0, "text": "can explain what that is. And then it's a<00:33:02.640> character<00:33:03.720> a<00:33:03.800> character<00:33:04.240> array,<00:33:04.520> so" }, { "start": 1984.67, "duration": 0.0, "text": "a character a character array, so" }, { "start": 1984.68, "duration": 0.0, "text": "a character a character array, so generates<00:33:05.360> uh<00:33:05.720> a<00:33:05.800> name<00:33:06.120> here<00:33:06.640> using<00:33:06.920> this" }, { "start": 1987.03, "duration": 0.0, "text": "generates uh a name here using this" }, { "start": 1987.04, "duration": 0.0, "text": "generates uh a name here using this thing,<00:33:07.240> but<00:33:07.360> it's<00:33:07.440> a<00:33:07.520> character<00:33:07.920> array,<00:33:08.800> has" }, { "start": 1988.99, "duration": 0.0, "text": "thing, but it's a character array, has" }, { "start": 1989.0, "duration": 0.0, "text": "thing, but it's a character array, has some<00:33:09.200> ID,<00:33:09.960> and<00:33:10.080> then<00:33:10.200> it<00:33:10.320> sticks<00:33:10.640> in<00:33:11.360> entry" }, { "start": 1991.67, "duration": 0.0, "text": "some ID, and then it sticks in entry" }, { "start": 1991.68, "duration": 0.0, "text": "some ID, and then it sticks in entry point<00:33:12.000> colon<00:33:12.400> and<00:33:12.480> then<00:33:12.640> whatever<00:33:12.880> the" }, { "start": 1992.99, "duration": 0.0, "text": "point colon and then whatever the" }, { "start": 1993.0, "duration": 0.0, "text": "point colon and then whatever the arguments<00:33:13.400> were<00:33:13.840> as<00:33:14.040> a<00:33:14.080> string<00:33:14.360> literal." }, { "start": 1995.71, "duration": 0.0, "text": "arguments were as a string literal." }, { "start": 1995.72, "duration": 0.0, "text": "arguments were as a string literal. Uh<00:33:15.960> so,<00:33:16.680> that<00:33:16.920> actually<00:33:17.160> gets<00:33:17.320> baked<00:33:17.560> into" }, { "start": 1998.03, "duration": 0.0, "text": "Uh so, that actually gets baked into" }, { "start": 1998.04, "duration": 0.0, "text": "Uh so, that actually gets baked into this<00:33:18.320> radbg<00:33:18.840> exec<00:33:19.200> data<00:33:19.520> thing.<00:33:20.440> That" }, { "start": 2000.59, "duration": 0.0, "text": "this radbg exec data thing. That" }, { "start": 2000.6, "duration": 0.0, "text": "this radbg exec data thing. That actually<00:33:21.320> tells<00:33:22.160> this<00:33:22.640> uh<00:33:22.720> tells<00:33:22.920> the<00:33:23.000> C" }, { "start": 2003.07, "duration": 0.0, "text": "actually tells this uh tells the C" }, { "start": 2003.08, "duration": 0.0, "text": "actually tells this uh tells the C compiler<00:33:23.480> to<00:33:23.600> stick<00:33:23.800> this<00:33:23.960> into<00:33:24.200> a<00:33:24.240> custom" }, { "start": 2004.59, "duration": 0.0, "text": "compiler to stick this into a custom" }, { "start": 2004.6, "duration": 0.0, "text": "compiler to stick this into a custom expression." }, { "start": 2006.03, "duration": 0.0, "text": "expression." }, { "start": 2006.04, "duration": 0.0, "text": "expression. Uh<00:33:26.200> or<00:33:26.320> sorry,<00:33:26.560> not<00:33:26.760> not<00:33:26.880> expression,<00:33:27.400> a" }, { "start": 2007.47, "duration": 0.0, "text": "Uh or sorry, not not expression, a" }, { "start": 2007.48, "duration": 0.0, "text": "Uh or sorry, not not expression, a custom<00:33:27.800> section.<00:33:28.920> And<00:33:29.560> uh<00:33:29.760> we<00:33:29.880> can<00:33:30.000> see<00:33:30.480> that" }, { "start": 2011.15, "duration": 0.0, "text": "custom section. And uh we can see that" }, { "start": 2011.16, "duration": 0.0, "text": "custom section. And uh we can see that uh" }, { "start": 2012.03, "duration": 0.0, "text": "uh" }, { "start": 2012.04, "duration": 0.0, "text": "uh radbg<00:33:32.520> exec<00:33:32.920> data<00:33:33.560> is<00:33:33.720> right<00:33:33.880> here<00:33:34.040> specified" }, { "start": 2014.55, "duration": 0.0, "text": "radbg exec data is right here specified" }, { "start": 2014.56, "duration": 0.0, "text": "radbg exec data is right here specified as<00:33:35.000> we<00:33:35.080> have<00:33:35.840> uh<00:33:35.920> we<00:33:36.080> tell<00:33:36.400> basically<00:33:36.720> the" }, { "start": 2016.79, "duration": 0.0, "text": "as we have uh we tell basically the" }, { "start": 2016.8, "duration": 0.0, "text": "as we have uh we tell basically the compiler,<00:33:37.160> \"Hey,<00:33:37.280> I<00:33:37.320> need<00:33:37.480> a<00:33:37.520> section" }, { "start": 2018.79, "duration": 0.0, "text": "compiler, \"Hey, I need a section" }, { "start": 2018.8, "duration": 0.0, "text": "compiler, \"Hey, I need a section uh<00:33:39.000> .radbg<00:33:39.800> needs<00:33:40.000> to<00:33:40.080> be<00:33:40.200> readable<00:33:40.520> and" }, { "start": 2020.59, "duration": 0.0, "text": "uh .radbg needs to be readable and" }, { "start": 2020.6, "duration": 0.0, "text": "uh .radbg needs to be readable and writable.\"<00:33:41.440> And<00:33:41.560> then<00:33:42.120> radbg<00:33:42.560> exec<00:33:43.080> data<00:33:43.520> is" }, { "start": 2023.67, "duration": 0.0, "text": "writable.\" And then radbg exec data is" }, { "start": 2023.68, "duration": 0.0, "text": "writable.\" And then radbg exec data is just<00:33:43.840> a<00:33:43.880> declspec.<00:33:44.840> This<00:33:45.040> is<00:33:45.160> for<00:33:45.560> MSVC<00:33:45.960> and" }, { "start": 2026.07, "duration": 0.0, "text": "just a declspec. This is for MSVC and" }, { "start": 2026.08, "duration": 0.0, "text": "just a declspec. This is for MSVC and Clang<00:33:46.320> on<00:33:46.440> Windows,<00:33:46.840> but<00:33:46.960> you<00:33:47.040> can<00:33:47.120> do" }, { "start": 2027.23, "duration": 0.0, "text": "Clang on Windows, but you can do" }, { "start": 2027.24, "duration": 0.0, "text": "Clang on Windows, but you can do equivalent<00:33:47.640> things<00:33:47.880> on<00:33:48.200> on<00:33:48.480> the<00:33:48.560> other" }, { "start": 2028.67, "duration": 0.0, "text": "equivalent things on on the other" }, { "start": 2028.68, "duration": 0.0, "text": "equivalent things on on the other compilers.<00:33:49.640> Hey,<00:33:49.800> declspec,<00:33:50.360> make<00:33:50.520> sure<00:33:50.760> when" }, { "start": 2030.87, "duration": 0.0, "text": "compilers. Hey, declspec, make sure when" }, { "start": 2030.88, "duration": 0.0, "text": "compilers. Hey, declspec, make sure when you<00:33:51.000> allocate<00:33:51.360> this<00:33:51.480> global<00:33:51.720> variable<00:33:52.240> that" }, { "start": 2032.39, "duration": 0.0, "text": "you allocate this global variable that" }, { "start": 2032.4, "duration": 0.0, "text": "you allocate this global variable that you<00:33:52.480> put<00:33:52.640> it<00:33:52.760> inside<00:33:53.120> of<00:33:53.200> the<00:33:53.280> .radbg<00:33:54.000> section." }, { "start": 2034.35, "duration": 0.0, "text": "you put it inside of the .radbg section." }, { "start": 2034.36, "duration": 0.0, "text": "you put it inside of the .radbg section. That's<00:33:54.520> all<00:33:54.640> that<00:33:54.880> radbg<00:33:55.320> exec<00:33:55.680> data<00:33:55.960> is,<00:33:56.320> so" }, { "start": 2036.47, "duration": 0.0, "text": "That's all that radbg exec data is, so" }, { "start": 2036.48, "duration": 0.0, "text": "That's all that radbg exec data is, so it<00:33:56.600> sticks<00:33:56.880> that<00:33:57.120> info<00:33:57.560> into<00:33:57.800> the<00:33:57.880> executable." }, { "start": 2038.87, "duration": 0.0, "text": "it sticks that info into the executable." }, { "start": 2038.88, "duration": 0.0, "text": "it sticks that info into the executable. And<00:33:59.000> as<00:33:59.080> a<00:33:59.120> consequence," }, { "start": 2040.67, "duration": 0.0, "text": "And as a consequence," }, { "start": 2040.68, "duration": 0.0, "text": "And as a consequence, uh<00:34:00.840> the<00:34:00.920> debugger,<00:34:01.360> when<00:34:01.480> it<00:34:01.600> loads<00:34:01.800> your" }, { "start": 2041.87, "duration": 0.0, "text": "uh the debugger, when it loads your" }, { "start": 2041.88, "duration": 0.0, "text": "uh the debugger, when it loads your program,<00:34:02.240> can<00:34:02.400> know,<00:34:02.920> \"Hey,<00:34:03.200> the<00:34:03.280> entry<00:34:03.520> point" }, { "start": 2043.71, "duration": 0.0, "text": "program, can know, \"Hey, the entry point" }, { "start": 2043.72, "duration": 0.0, "text": "program, can know, \"Hey, the entry point is<00:34:03.800> actually<00:34:04.080> here.\"" }, { "start": 2045.59, "duration": 0.0, "text": "is actually here.\"" }, { "start": 2045.6, "duration": 0.0, "text": "is actually here.\" Um" }, { "start": 2046.63, "duration": 0.0, "text": "Um" }, { "start": 2046.64, "duration": 0.0, "text": "Um So,<00:34:06.960> there's<00:34:07.160> other<00:34:07.480> kinds<00:34:07.760> of<00:34:08.159> interop<00:34:08.639> that" }, { "start": 2048.79, "duration": 0.0, "text": "So, there's other kinds of interop that" }, { "start": 2048.8, "duration": 0.0, "text": "So, there's other kinds of interop that your<00:34:08.919> program<00:34:09.240> can<00:34:09.360> do<00:34:09.520> with<00:34:09.679> the<00:34:09.720> debugger." }, { "start": 2050.03, "duration": 0.0, "text": "your program can do with the debugger." }, { "start": 2050.04, "duration": 0.0, "text": "your program can do with the debugger. You<00:34:10.120> can<00:34:10.240> see<00:34:10.399> a<00:34:10.440> few<00:34:10.639> of<00:34:10.720> them<00:34:10.879> right<00:34:11.080> here.<00:34:11.960> Um" }, { "start": 2052.11, "duration": 0.0, "text": "You can see a few of them right here. Um" }, { "start": 2052.12, "duration": 0.0, "text": "You can see a few of them right here. Um so,<00:34:12.240> by<00:34:12.399> default,<00:34:12.840> your<00:34:12.960> threads<00:34:13.240> will<00:34:13.320> just" }, { "start": 2053.47, "duration": 0.0, "text": "so, by default, your threads will just" }, { "start": 2053.48, "duration": 0.0, "text": "so, by default, your threads will just be<00:34:13.560> colored<00:34:13.840> with<00:34:13.960> this<00:34:14.080> like<00:34:14.240> little<00:34:14.440> yellow" }, { "start": 2054.75, "duration": 0.0, "text": "be colored with this like little yellow" }, { "start": 2054.76, "duration": 0.0, "text": "be colored with this like little yellow color.<00:34:15.600> Um" }, { "start": 2056.31, "duration": 0.0, "text": "color. Um" }, { "start": 2056.32, "duration": 0.0, "text": "color. Um but<00:34:16.440> if<00:34:16.560> I<00:34:16.639> want<00:34:16.800> to<00:34:16.879> And<00:34:17.120> also,<00:34:17.480> it'll<00:34:17.679> just" }, { "start": 2058.31, "duration": 0.0, "text": "but if I want to And also, it'll just" }, { "start": 2058.32, "duration": 0.0, "text": "but if I want to And also, it'll just the<00:34:18.440> debugger<00:34:18.760> assumes<00:34:19.120> this<00:34:19.240> thing<00:34:19.399> is<00:34:19.520> the" }, { "start": 2059.59, "duration": 0.0, "text": "the debugger assumes this thing is the" }, { "start": 2059.6, "duration": 0.0, "text": "the debugger assumes this thing is the main<00:34:19.840> thread<00:34:20.159> cuz<00:34:20.320> it<00:34:20.480> I<00:34:20.560> mean,<00:34:20.720> it<00:34:20.800> is<00:34:20.919> the" }, { "start": 2060.99, "duration": 0.0, "text": "main thread cuz it I mean, it is the" }, { "start": 2061.0, "duration": 0.0, "text": "main thread cuz it I mean, it is the main<00:34:21.159> thread,<00:34:21.399> but<00:34:21.520> it'll<00:34:21.679> just<00:34:21.919> name<00:34:22.159> it<00:34:22.360> main" }, { "start": 2062.59, "duration": 0.0, "text": "main thread, but it'll just name it main" }, { "start": 2062.6, "duration": 0.0, "text": "main thread, but it'll just name it main thread.<00:34:23.320> But<00:34:23.399> if<00:34:23.480> you<00:34:23.560> wanted<00:34:23.760> to<00:34:23.840> have<00:34:23.919> a" }, { "start": 2063.95, "duration": 0.0, "text": "thread. But if you wanted to have a" }, { "start": 2063.96, "duration": 0.0, "text": "thread. But if you wanted to have a custom<00:34:24.280> name,<00:34:24.480> you<00:34:24.520> could<00:34:24.639> say,<00:34:24.800> \"Hey,<00:34:25.399> uh" }, { "start": 2065.47, "duration": 0.0, "text": "custom name, you could say, \"Hey, uh" }, { "start": 2065.48, "duration": 0.0, "text": "custom name, you could say, \"Hey, uh radbg<00:34:25.960> thread<00:34:26.240> name.\"" }, { "start": 2067.31, "duration": 0.0, "text": "radbg thread name.\"" }, { "start": 2067.32, "duration": 0.0, "text": "radbg thread name.\" Um<00:34:27.679> right<00:34:27.879> there,<00:34:28.080> and<00:34:28.320> and<00:34:28.560> that's<00:34:28.720> going<00:34:28.840> to" }, { "start": 2068.909, "duration": 0.0, "text": "Um right there, and and that's going to" }, { "start": 2068.919, "duration": 0.0, "text": "Um right there, and and that's going to be<00:34:29.000> mule<00:34:29.280> main<00:34:29.520> thread,<00:34:29.800> and<00:34:29.879> that<00:34:30.040> shows<00:34:30.280> up" }, { "start": 2070.59, "duration": 0.0, "text": "be mule main thread, and that shows up" }, { "start": 2070.6, "duration": 0.0, "text": "be mule main thread, and that shows up here.<00:34:30.960> And<00:34:31.080> then<00:34:31.159> if<00:34:31.280> I<00:34:31.360> want<00:34:31.560> to<00:34:31.679> color<00:34:32.000> this" }, { "start": 2072.149, "duration": 0.0, "text": "here. And then if I want to color this" }, { "start": 2072.159, "duration": 0.0, "text": "here. And then if I want to color this thread<00:34:32.399> a<00:34:32.440> specific<00:34:32.879> way,<00:34:33.120> I<00:34:33.200> can<00:34:33.480> I<00:34:33.560> can<00:34:33.720> do" }, { "start": 2073.83, "duration": 0.0, "text": "thread a specific way, I can I can do" }, { "start": 2073.84, "duration": 0.0, "text": "thread a specific way, I can I can do that<00:34:34.159> also<00:34:34.879> with<00:34:35.040> this<00:34:35.200> markup<00:34:35.560> stuff.<00:34:36.320> And<00:34:36.440> so" }, { "start": 2076.669, "duration": 0.0, "text": "that also with this markup stuff. And so" }, { "start": 2076.679, "duration": 0.0, "text": "that also with this markup stuff. And so when<00:34:36.800> I<00:34:36.840> step<00:34:37.080> over<00:34:37.200> that,<00:34:37.440> it'll<00:34:37.840> color<00:34:38.120> my" }, { "start": 2078.23, "duration": 0.0, "text": "when I step over that, it'll color my" }, { "start": 2078.24, "duration": 0.0, "text": "when I step over that, it'll color my thread." }, { "start": 2079.79, "duration": 0.0, "text": "thread." }, { "start": 2079.8, "duration": 0.0, "text": "thread. Um" }, { "start": 2081.59, "duration": 0.0, "text": "Um" }, { "start": 2081.6, "duration": 0.0, "text": "Um And<00:34:41.720> then<00:34:42.480> there's<00:34:42.679> other<00:34:42.840> stuff,<00:34:43.040> too.<00:34:43.280> So" }, { "start": 2084.878, "duration": 0.0, "text": "And then there's other stuff, too. So" }, { "start": 2084.888, "duration": 0.0, "text": "And then there's other stuff, too. So >> [clears throat]" }, { "start": 2084.99, "duration": 0.0, "text": ">> [clears throat]" }, { "start": 2085.0, "duration": 0.0, "text": ">> [clears throat] >> um" }, { "start": 2087.509, "duration": 0.0, "text": ">> [snorts]" }, { "start": 2087.59, "duration": 0.0, "text": ">> [snorts]" }, { "start": 2087.6, "duration": 0.0, "text": ">> [snorts] >> For<00:34:47.760> example,<00:34:48.560> if<00:34:48.720> I<00:34:48.800> go<00:34:48.960> down<00:34:49.560> to" }, { "start": 2090.75, "duration": 0.0, "text": ">> For example, if I go down to" }, { "start": 2090.76, "duration": 0.0, "text": ">> For example, if I go down to uh" }, { "start": 2091.669, "duration": 0.0, "text": "uh" }, { "start": 2091.679, "duration": 0.0, "text": "uh Let<00:34:51.760> me<00:34:51.879> look<00:34:52.120> at" }, { "start": 2093.51, "duration": 0.0, "text": "Let me look at" }, { "start": 2093.52, "duration": 0.0, "text": "Let me look at where<00:34:53.760> what<00:34:53.960> example<00:34:54.360> am<00:34:54.440> I<00:34:54.480> looking<00:34:54.760> for?<00:34:55.360> Uh" }, { "start": 2095.51, "duration": 0.0, "text": "where what example am I looking for? Uh" }, { "start": 2095.52, "duration": 0.0, "text": "where what example am I looking for? Uh dynamic<00:34:56.000> array." }, { "start": 2097.23, "duration": 0.0, "text": "dynamic array." }, { "start": 2097.24, "duration": 0.0, "text": "dynamic array. So<00:34:57.320> dynamic<00:34:57.840> array,<00:34:58.160> if<00:34:58.320> we<00:34:58.440> look<00:34:58.680> at<00:34:58.840> what" }, { "start": 2099.11, "duration": 0.0, "text": "So dynamic array, if we look at what" }, { "start": 2099.12, "duration": 0.0, "text": "So dynamic array, if we look at what this<00:34:59.440> type<00:34:59.760> is,<00:35:00.000> this<00:35:00.160> is<00:35:00.280> a<00:35:00.320> structure." }, { "start": 2101.63, "duration": 0.0, "text": "this type is, this is a structure." }, { "start": 2101.64, "duration": 0.0, "text": "this type is, this is a structure. Right?<00:35:01.880> And<00:35:02.000> this<00:35:02.120> structure<00:35:02.480> has<00:35:02.640> a<00:35:02.720> pointer" }, { "start": 2103.87, "duration": 0.0, "text": "Right? And this structure has a pointer" }, { "start": 2103.88, "duration": 0.0, "text": "Right? And this structure has a pointer to<00:35:04.480> a<00:35:04.560> pair" }, { "start": 2105.67, "duration": 0.0, "text": "to a pair" }, { "start": 2105.68, "duration": 0.0, "text": "to a pair and<00:35:05.800> it<00:35:05.880> has<00:35:06.040> a<00:35:06.080> count." }, { "start": 2107.07, "duration": 0.0, "text": "and it has a count." }, { "start": 2107.08, "duration": 0.0, "text": "and it has a count. So<00:35:07.240> like<00:35:07.920> usual<00:35:08.280> C<00:35:08.400> programs,<00:35:09.160> you<00:35:09.240> know,<00:35:09.360> if" }, { "start": 2109.47, "duration": 0.0, "text": "So like usual C programs, you know, if" }, { "start": 2109.48, "duration": 0.0, "text": "So like usual C programs, you know, if you<00:35:09.680> if<00:35:09.840> you<00:35:09.920> want<00:35:10.040> to<00:35:10.120> have<00:35:10.200> a<00:35:10.240> slice<00:35:10.640> type," }, { "start": 2110.91, "duration": 0.0, "text": "you if you want to have a slice type," }, { "start": 2110.92, "duration": 0.0, "text": "you if you want to have a slice type, you<00:35:11.000> need<00:35:11.120> a<00:35:11.200> pointer<00:35:11.520> and<00:35:11.600> a<00:35:11.640> size<00:35:12.080> or<00:35:12.400> you" }, { "start": 2112.47, "duration": 0.0, "text": "you need a pointer and a size or you" }, { "start": 2112.48, "duration": 0.0, "text": "you need a pointer and a size or you know,<00:35:12.560> two<00:35:12.760> pointers<00:35:13.160> that<00:35:13.280> form<00:35:13.520> a<00:35:13.840> that<00:35:13.960> form" }, { "start": 2114.11, "duration": 0.0, "text": "know, two pointers that form a that form" }, { "start": 2114.12, "duration": 0.0, "text": "know, two pointers that form a that form a<00:35:14.200> range<00:35:14.520> in<00:35:14.640> memory<00:35:14.920> or<00:35:15.000> whatever." }, { "start": 2116.23, "duration": 0.0, "text": "a range in memory or whatever." }, { "start": 2116.24, "duration": 0.0, "text": "a range in memory or whatever. Um<00:35:16.800> and<00:35:16.880> this<00:35:17.040> is<00:35:17.120> just<00:35:17.440> how<00:35:17.680> you<00:35:17.840> encode<00:35:18.200> a" }, { "start": 2118.23, "duration": 0.0, "text": "Um and this is just how you encode a" }, { "start": 2118.24, "duration": 0.0, "text": "Um and this is just how you encode a dynamic<00:35:18.720> array<00:35:19.160> inside<00:35:19.600> of<00:35:19.760> like<00:35:19.960> the<00:35:20.080> regular" }, { "start": 2120.95, "duration": 0.0, "text": "dynamic array inside of like the regular" }, { "start": 2120.96, "duration": 0.0, "text": "dynamic array inside of like the regular kind<00:35:21.160> of<00:35:21.600> uh<00:35:21.720> bare-bones<00:35:22.520> C<00:35:23.120> type<00:35:23.320> system." }, { "start": 2124.55, "duration": 0.0, "text": "kind of uh bare-bones C type system." }, { "start": 2124.56, "duration": 0.0, "text": "kind of uh bare-bones C type system. And<00:35:24.640> then<00:35:24.760> generally<00:35:25.160> if<00:35:25.280> you<00:35:25.560> visualize<00:35:26.000> this" }, { "start": 2126.15, "duration": 0.0, "text": "And then generally if you visualize this" }, { "start": 2126.16, "duration": 0.0, "text": "And then generally if you visualize this in<00:35:26.280> a<00:35:26.320> debugger,<00:35:27.120> what<00:35:27.280> you'll<00:35:27.400> see<00:35:28.280> is<00:35:28.960> um" }, { "start": 2129.95, "duration": 0.0, "text": "in a debugger, what you'll see is um" }, { "start": 2129.96, "duration": 0.0, "text": "in a debugger, what you'll see is um I'll<00:35:30.160> have<00:35:30.280> to<00:35:30.360> use<00:35:30.520> this<00:35:30.720> raw<00:35:30.960> thing,<00:35:31.720> this" }, { "start": 2131.95, "duration": 0.0, "text": "I'll have to use this raw thing, this" }, { "start": 2131.96, "duration": 0.0, "text": "I'll have to use this raw thing, this raw<00:35:32.520> view,<00:35:32.800> which<00:35:32.960> basically<00:35:33.200> turns<00:35:33.480> off<00:35:33.680> all" }, { "start": 2133.79, "duration": 0.0, "text": "raw view, which basically turns off all" }, { "start": 2133.8, "duration": 0.0, "text": "raw view, which basically turns off all the<00:35:33.880> special<00:35:34.160> views,<00:35:34.680> which<00:35:34.840> I'll<00:35:35.040> get<00:35:35.200> to<00:35:35.320> in" }, { "start": 2135.39, "duration": 0.0, "text": "the special views, which I'll get to in" }, { "start": 2135.4, "duration": 0.0, "text": "the special views, which I'll get to in a<00:35:35.440> second.<00:35:35.760> But<00:35:36.200> this<00:35:36.360> is<00:35:36.480> what<00:35:36.600> you<00:35:36.680> would" }, { "start": 2136.79, "duration": 0.0, "text": "a second. But this is what you would" }, { "start": 2136.8, "duration": 0.0, "text": "a second. But this is what you would normally<00:35:37.160> see<00:35:37.400> when<00:35:37.560> you<00:35:37.680> visualize<00:35:38.120> this" }, { "start": 2138.23, "duration": 0.0, "text": "normally see when you visualize this" }, { "start": 2138.24, "duration": 0.0, "text": "normally see when you visualize this thing<00:35:38.400> in<00:35:38.480> a<00:35:38.520> debugger.<00:35:38.920> It's<00:35:39.040> like,<00:35:39.200> \"Hey," }, { "start": 2139.39, "duration": 0.0, "text": "thing in a debugger. It's like, \"Hey," }, { "start": 2139.4, "duration": 0.0, "text": "thing in a debugger. It's like, \"Hey, it's<00:35:39.600> a<00:35:39.640> struct<00:35:40.040> with<00:35:40.160> two<00:35:40.320> members.<00:35:40.680> One's<00:35:40.880> a" }, { "start": 2140.91, "duration": 0.0, "text": "it's a struct with two members. One's a" }, { "start": 2140.92, "duration": 0.0, "text": "it's a struct with two members. One's a pointer<00:35:41.360> to<00:35:41.960> some<00:35:42.240> number<00:35:42.560> of<00:35:42.680> pairs<00:35:42.960> we<00:35:43.040> don't" }, { "start": 2143.23, "duration": 0.0, "text": "pointer to some number of pairs we don't" }, { "start": 2143.24, "duration": 0.0, "text": "pointer to some number of pairs we don't know,<00:35:43.480> but<00:35:43.840> we<00:35:43.960> can<00:35:44.080> only<00:35:44.240> assume<00:35:44.600> one<00:35:44.920> really" }, { "start": 2145.67, "duration": 0.0, "text": "know, but we can only assume one really" }, { "start": 2145.68, "duration": 0.0, "text": "know, but we can only assume one really in<00:35:45.880> general.\"<00:35:46.880> And<00:35:46.920> then<00:35:47.040> this<00:35:47.200> integer" }, { "start": 2147.63, "duration": 0.0, "text": "in general.\" And then this integer" }, { "start": 2147.64, "duration": 0.0, "text": "in general.\" And then this integer called<00:35:47.920> count<00:35:48.320> with<00:35:48.880> with<00:35:49.120> a<00:35:49.240> size<00:35:50.000> or<00:35:50.440> with<00:35:50.600> a" }, { "start": 2150.63, "duration": 0.0, "text": "called count with with a size or with a" }, { "start": 2150.64, "duration": 0.0, "text": "called count with with a size or with a value<00:35:50.920> of<00:35:51.040> six." }, { "start": 2152.15, "duration": 0.0, "text": "value of six." }, { "start": 2152.16, "duration": 0.0, "text": "value of six. Um<00:35:52.360> but<00:35:52.520> obviously<00:35:53.000> what<00:35:53.120> this<00:35:53.280> is<00:35:53.400> encoding" }, { "start": 2154.47, "duration": 0.0, "text": "Um but obviously what this is encoding" }, { "start": 2154.48, "duration": 0.0, "text": "Um but obviously what this is encoding um<00:35:55.000> and<00:35:55.280> what<00:35:55.480> the<00:35:55.640> name<00:35:55.880> should<00:35:56.040> imply<00:35:56.360> is" }, { "start": 2156.43, "duration": 0.0, "text": "um and what the name should imply is" }, { "start": 2156.44, "duration": 0.0, "text": "um and what the name should imply is that,<00:35:56.600> \"Hey,<00:35:56.840> this<00:35:57.040> is<00:35:57.240> six<00:35:57.680> of<00:35:57.840> these<00:35:58.040> pairs" }, { "start": 2158.63, "duration": 0.0, "text": "that, \"Hey, this is six of these pairs" }, { "start": 2158.64, "duration": 0.0, "text": "that, \"Hey, this is six of these pairs that<00:35:58.840> we're<00:35:58.920> pointing<00:35:59.320> to.\"" }, { "start": 2161.39, "duration": 0.0, "text": "that we're pointing to.\"" }, { "start": 2161.4, "duration": 0.0, "text": "that we're pointing to.\" And<00:36:01.520> so<00:36:01.640> what<00:36:01.760> we<00:36:01.840> can<00:36:01.960> actually<00:36:02.240> do<00:36:02.680> is<00:36:03.160> um" }, { "start": 2164.15, "duration": 0.0, "text": "And so what we can actually do is um" }, { "start": 2164.16, "duration": 0.0, "text": "And so what we can actually do is um uh<00:36:04.320> if<00:36:04.440> we<00:36:04.560> go" }, { "start": 2167.68, "duration": 0.0, "text": "look<00:36:08.080> at<00:36:08.200> more<00:36:08.400> of<00:36:08.480> the<00:36:08.560> markup<00:36:08.920> in<00:36:09.000> this<00:36:09.440> in" }, { "start": 2169.55, "duration": 0.0, "text": "look at more of the markup in this in" }, { "start": 2169.56, "duration": 0.0, "text": "look at more of the markup in this in this<00:36:10.080> um<00:36:10.400> file,<00:36:10.760> we<00:36:10.840> can<00:36:10.960> see,<00:36:11.560> \"Hey,<00:36:11.680> here's" }, { "start": 2171.91, "duration": 0.0, "text": "this um file, we can see, \"Hey, here's" }, { "start": 2171.92, "duration": 0.0, "text": "this um file, we can see, \"Hey, here's my<00:36:12.040> structure.<00:36:13.080> Uh<00:36:13.200> it's<00:36:13.360> dynamic<00:36:13.760> array," }, { "start": 2174.23, "duration": 0.0, "text": "my structure. Uh it's dynamic array," }, { "start": 2174.24, "duration": 0.0, "text": "my structure. Uh it's dynamic array, pair<00:36:14.480> pointer,<00:36:15.280> and<00:36:15.560> int.\"" }, { "start": 2177.27, "duration": 0.0, "text": "pair pointer, and int.\"" }, { "start": 2177.28, "duration": 0.0, "text": "pair pointer, and int.\" And<00:36:18.000> right<00:36:18.200> here<00:36:18.440> I<00:36:18.480> just<00:36:18.680> say,<00:36:18.840> \"Hey,<00:36:19.600> I<00:36:19.720> want" }, { "start": 2179.91, "duration": 0.0, "text": "And right here I just say, \"Hey, I want" }, { "start": 2179.92, "duration": 0.0, "text": "And right here I just say, \"Hey, I want to<00:36:20.000> form<00:36:20.280> a<00:36:20.320> special<00:36:20.680> kind<00:36:20.840> of<00:36:20.920> view<00:36:21.240> that's" }, { "start": 2181.43, "duration": 0.0, "text": "to form a special kind of view that's" }, { "start": 2181.44, "duration": 0.0, "text": "to form a special kind of view that's associated<00:36:22.160> with<00:36:22.280> this<00:36:22.480> type" }, { "start": 2183.43, "duration": 0.0, "text": "associated with this type" }, { "start": 2183.44, "duration": 0.0, "text": "associated with this type uh<00:36:23.520> for<00:36:24.000> for<00:36:24.160> the<00:36:24.280> Render<00:36:24.480> Debugger.\"<00:36:24.720> So<00:36:24.840> it's" }, { "start": 2184.91, "duration": 0.0, "text": "uh for for the Render Debugger.\" So it's" }, { "start": 2184.92, "duration": 0.0, "text": "uh for for the Render Debugger.\" So it's a<00:36:24.960> Render<00:36:25.160> Debugger<00:36:25.400> type<00:36:25.640> view.<00:36:26.360> I<00:36:26.480> put<00:36:26.680> in" }, { "start": 2186.75, "duration": 0.0, "text": "a Render Debugger type view. I put in" }, { "start": 2186.76, "duration": 0.0, "text": "a Render Debugger type view. I put in the<00:36:26.840> name<00:36:27.040> of<00:36:27.120> the<00:36:27.200> type,<00:36:27.720> and<00:36:27.800> then<00:36:27.920> I<00:36:28.000> put<00:36:28.280> in" }, { "start": 2189.03, "duration": 0.0, "text": "the name of the type, and then I put in" }, { "start": 2189.04, "duration": 0.0, "text": "the name of the type, and then I put in the<00:36:29.240> expression<00:36:29.880> that<00:36:30.000> I'd<00:36:30.120> like<00:36:30.320> to" }, { "start": 2190.39, "duration": 0.0, "text": "the expression that I'd like to" }, { "start": 2190.4, "duration": 0.0, "text": "the expression that I'd like to visualize<00:36:31.520> instances<00:36:32.040> of<00:36:32.120> this<00:36:32.280> type<00:36:32.520> as.<00:36:33.320> So," }, { "start": 2193.43, "duration": 0.0, "text": "visualize instances of this type as. So," }, { "start": 2193.44, "duration": 0.0, "text": "visualize instances of this type as. So, in<00:36:33.480> this<00:36:33.640> case,<00:36:33.920> and<00:36:34.120> this<00:36:34.280> dollar<00:36:34.560> sign<00:36:35.080> is" }, { "start": 2195.23, "duration": 0.0, "text": "in this case, and this dollar sign is" }, { "start": 2195.24, "duration": 0.0, "text": "in this case, and this dollar sign is just<00:36:35.480> used<00:36:35.880> to<00:36:36.120> refer<00:36:36.520> to" }, { "start": 2197.59, "duration": 0.0, "text": "just used to refer to" }, { "start": 2197.6, "duration": 0.0, "text": "just used to refer to um<00:36:37.720> whatever's<00:36:38.080> being<00:36:38.280> evaluated.<00:36:39.280> So,<00:36:39.600> any" }, { "start": 2200.51, "duration": 0.0, "text": "um whatever's being evaluated. So, any" }, { "start": 2200.52, "duration": 0.0, "text": "um whatever's being evaluated. So, any whatever<00:36:40.880> expression<00:36:41.280> it<00:36:41.360> evaluates<00:36:41.800> to<00:36:41.920> this" }, { "start": 2202.07, "duration": 0.0, "text": "whatever expression it evaluates to this" }, { "start": 2202.08, "duration": 0.0, "text": "whatever expression it evaluates to this type,<00:36:42.520> that's<00:36:42.720> what<00:36:42.880> this<00:36:43.040> dollar<00:36:43.320> sign" }, { "start": 2203.55, "duration": 0.0, "text": "type, that's what this dollar sign" }, { "start": 2203.56, "duration": 0.0, "text": "type, that's what this dollar sign represents.<00:36:44.360> And<00:36:44.520> the<00:36:44.640> only<00:36:44.840> thing<00:36:44.960> I'm<00:36:45.080> going" }, { "start": 2205.19, "duration": 0.0, "text": "represents. And the only thing I'm going" }, { "start": 2205.2, "duration": 0.0, "text": "represents. And the only thing I'm going to<00:36:45.280> do<00:36:45.560> when<00:36:45.720> we're<00:36:45.840> evaluating<00:36:46.400> this<00:36:46.560> kind<00:36:46.760> of" }, { "start": 2206.87, "duration": 0.0, "text": "to do when we're evaluating this kind of" }, { "start": 2206.88, "duration": 0.0, "text": "to do when we're evaluating this kind of thing<00:36:47.400> is<00:36:47.480> I'm<00:36:47.560> just<00:36:47.680> going<00:36:47.800> to<00:36:47.880> wrap<00:36:48.120> it<00:36:48.200> in" }, { "start": 2208.27, "duration": 0.0, "text": "thing is I'm just going to wrap it in" }, { "start": 2208.28, "duration": 0.0, "text": "thing is I'm just going to wrap it in this<00:36:48.440> view<00:36:49.040> called<00:36:49.320> slice." }, { "start": 2211.27, "duration": 0.0, "text": "this view called slice." }, { "start": 2211.28, "duration": 0.0, "text": "this view called slice. And<00:36:51.400> so,<00:36:51.520> what<00:36:51.680> we<00:36:51.840> do" }, { "start": 2213.03, "duration": 0.0, "text": "And so, what we do" }, { "start": 2213.04, "duration": 0.0, "text": "And so, what we do uh<00:36:53.320> what<00:36:53.440> we<00:36:53.560> see<00:36:53.800> when<00:36:53.960> we<00:36:54.080> actually<00:36:54.640> like" }, { "start": 2214.91, "duration": 0.0, "text": "uh what we see when we actually like" }, { "start": 2214.92, "duration": 0.0, "text": "uh what we see when we actually like plug<00:36:55.120> that<00:36:55.320> in<00:36:55.520> and<00:36:55.680> evaluate<00:36:56.080> just<00:36:56.320> dynamic," }, { "start": 2216.83, "duration": 0.0, "text": "plug that in and evaluate just dynamic," }, { "start": 2216.84, "duration": 0.0, "text": "plug that in and evaluate just dynamic, we<00:36:57.000> see<00:36:57.200> that<00:36:57.360> the<00:36:57.480> evaluation<00:36:58.000> type<00:36:58.160> is" }, { "start": 2218.23, "duration": 0.0, "text": "we see that the evaluation type is" }, { "start": 2218.24, "duration": 0.0, "text": "we see that the evaluation type is actually<00:36:58.560> slice<00:36:59.480> the<00:36:59.600> slice<00:36:59.960> view<00:37:00.760> applied<00:37:01.200> to" }, { "start": 2221.75, "duration": 0.0, "text": "actually slice the slice view applied to" }, { "start": 2221.76, "duration": 0.0, "text": "actually slice the slice view applied to a<00:37:01.840> dynamic<00:37:02.280> array<00:37:02.440> type." }, { "start": 2223.83, "duration": 0.0, "text": "a dynamic array type." }, { "start": 2223.84, "duration": 0.0, "text": "a dynamic array type. And<00:37:03.960> that<00:37:04.160> will<00:37:04.320> actually<00:37:04.640> expand<00:37:05.280> with<00:37:05.480> the" }, { "start": 2225.59, "duration": 0.0, "text": "And that will actually expand with the" }, { "start": 2225.6, "duration": 0.0, "text": "And that will actually expand with the exact<00:37:05.960> number<00:37:06.200> of<00:37:06.320> things<00:37:06.560> that<00:37:06.680> I<00:37:06.720> actually" }, { "start": 2226.99, "duration": 0.0, "text": "exact number of things that I actually" }, { "start": 2227.0, "duration": 0.0, "text": "exact number of things that I actually expect.<00:37:07.440> So,<00:37:07.560> this<00:37:07.760> is<00:37:07.880> like<00:37:08.080> just<00:37:08.800> hit" }, { "start": 2228.91, "duration": 0.0, "text": "expect. So, this is like just hit" }, { "start": 2228.92, "duration": 0.0, "text": "expect. So, this is like just hit saying,<00:37:09.200> \"Hey,<00:37:09.360> here's<00:37:09.600> a<00:37:09.640> structure.<00:37:10.000> It's" }, { "start": 2230.07, "duration": 0.0, "text": "saying, \"Hey, here's a structure. It's" }, { "start": 2230.08, "duration": 0.0, "text": "saying, \"Hey, here's a structure. It's got<00:37:10.200> a<00:37:10.240> pointer<00:37:10.520> and<00:37:10.600> a<00:37:10.640> count.<00:37:11.600> You<00:37:11.760> know<00:37:11.880> what" }, { "start": 2231.99, "duration": 0.0, "text": "got a pointer and a count. You know what" }, { "start": 2232.0, "duration": 0.0, "text": "got a pointer and a count. You know what to<00:37:12.080> do<00:37:12.200> with<00:37:12.360> this<00:37:13.080> if<00:37:13.280> I<00:37:13.360> tell<00:37:13.600> you<00:37:13.680> that<00:37:13.840> it's" }, { "start": 2233.95, "duration": 0.0, "text": "to do with this if I tell you that it's" }, { "start": 2233.96, "duration": 0.0, "text": "to do with this if I tell you that it's a<00:37:14.000> slice.\"<00:37:14.560> So,<00:37:15.000> the<00:37:15.120> debugger<00:37:15.440> does<00:37:15.680> know<00:37:15.800> how" }, { "start": 2235.87, "duration": 0.0, "text": "a slice.\" So, the debugger does know how" }, { "start": 2235.88, "duration": 0.0, "text": "a slice.\" So, the debugger does know how to<00:37:16.000> do<00:37:16.120> it<00:37:16.520> do<00:37:16.680> with<00:37:16.800> it,<00:37:16.960> and<00:37:17.040> then<00:37:17.160> this<00:37:17.280> write" }, { "start": 2237.43, "duration": 0.0, "text": "to do it do with it, and then this write" }, { "start": 2237.44, "duration": 0.0, "text": "to do it do with it, and then this write a<00:37:17.480> view<00:37:17.600> type<00:37:17.920> view<00:37:18.080> is<00:37:18.160> just<00:37:18.360> saying," }, { "start": 2239.47, "duration": 0.0, "text": "a view type view is just saying," }, { "start": 2239.48, "duration": 0.0, "text": "a view type view is just saying, \"If<00:37:19.600> you<00:37:19.720> have<00:37:19.960> this<00:37:20.120> type,<00:37:20.600> just<00:37:20.840> do<00:37:20.960> that" }, { "start": 2241.15, "duration": 0.0, "text": "\"If you have this type, just do that" }, { "start": 2241.16, "duration": 0.0, "text": "\"If you have this type, just do that automatically<00:37:21.680> for<00:37:21.880> me.\"<00:37:22.000> So,<00:37:22.080> you<00:37:22.120> don't" }, { "start": 2242.27, "duration": 0.0, "text": "automatically for me.\" So, you don't" }, { "start": 2242.28, "duration": 0.0, "text": "automatically for me.\" So, you don't have<00:37:22.400> to<00:37:22.480> do<00:37:23.080> slice" }, { "start": 2244.31, "duration": 0.0, "text": "have to do slice" }, { "start": 2244.32, "duration": 0.0, "text": "have to do slice at<00:37:24.840> uh<00:37:24.920> all<00:37:25.000> dynamic<00:37:25.640> every<00:37:25.800> single<00:37:26.040> time<00:37:26.240> you" }, { "start": 2246.31, "duration": 0.0, "text": "at uh all dynamic every single time you" }, { "start": 2246.32, "duration": 0.0, "text": "at uh all dynamic every single time you want<00:37:26.440> to<00:37:26.480> evaluate<00:37:26.880> something." }, { "start": 2247.99, "duration": 0.0, "text": "want to evaluate something." }, { "start": 2248.0, "duration": 0.0, "text": "want to evaluate something. Um" }, { "start": 2249.47, "duration": 0.0, "text": "Um" }, { "start": 2249.48, "duration": 0.0, "text": "Um And<00:37:29.600> you<00:37:29.640> can<00:37:29.760> see<00:37:29.960> you<00:37:30.080> do<00:37:30.200> it<00:37:30.240> with<00:37:30.360> templates" }, { "start": 2250.75, "duration": 0.0, "text": "And you can see you do it with templates" }, { "start": 2250.76, "duration": 0.0, "text": "And you can see you do it with templates as<00:37:30.880> well.<00:37:31.080> Like<00:37:31.280> I<00:37:31.320> have<00:37:31.400> a<00:37:31.440> templated<00:37:31.880> dynamic" }, { "start": 2252.31, "duration": 0.0, "text": "as well. Like I have a templated dynamic" }, { "start": 2252.32, "duration": 0.0, "text": "as well. Like I have a templated dynamic array.<00:37:33.120> Um<00:37:33.880> and<00:37:34.240> here<00:37:34.520> I<00:37:34.560> actually<00:37:34.800> put<00:37:34.960> in<00:37:35.040> the" }, { "start": 2255.11, "duration": 0.0, "text": "array. Um and here I actually put in the" }, { "start": 2255.12, "duration": 0.0, "text": "array. Um and here I actually put in the count.<00:37:35.720> So,<00:37:35.880> if<00:37:36.000> we<00:37:36.120> look<00:37:36.360> at<00:37:36.680> uh<00:37:37.000> let<00:37:37.080> me<00:37:37.200> look" }, { "start": 2257.43, "duration": 0.0, "text": "count. So, if we look at uh let me look" }, { "start": 2257.44, "duration": 0.0, "text": "count. So, if we look at uh let me look at<00:37:37.560> where<00:37:37.720> this<00:37:37.880> is<00:37:38.000> used." }, { "start": 2259.71, "duration": 0.0, "text": "at where this is used." }, { "start": 2259.72, "duration": 0.0, "text": "at where this is used. Uh<00:37:39.880> templated<00:37:40.280> dynamic,<00:37:40.800> so<00:37:40.920> we'll<00:37:41.040> do" }, { "start": 2262.03, "duration": 0.0, "text": "Uh templated dynamic, so we'll do" }, { "start": 2262.04, "duration": 0.0, "text": "Uh templated dynamic, so we'll do templated" }, { "start": 2263.67, "duration": 0.0, "text": "templated" }, { "start": 2263.68, "duration": 0.0, "text": "templated dynamic<00:37:44.120> here." }, { "start": 2265.91, "duration": 0.0, "text": "dynamic here." }, { "start": 2265.92, "duration": 0.0, "text": "dynamic here. And<00:37:45.960> we<00:37:46.040> can<00:37:46.160> see<00:37:46.320> we<00:37:46.440> get<00:37:47.160> uh<00:37:47.400> the<00:37:47.520> count" }, { "start": 2267.95, "duration": 0.0, "text": "And we can see we get uh the count" }, { "start": 2267.96, "duration": 0.0, "text": "And we can see we get uh the count visualized<00:37:48.360> here<00:37:48.520> and<00:37:48.600> then<00:37:48.800> array<00:37:49.360> of<00:37:49.600> the" }, { "start": 2269.67, "duration": 0.0, "text": "visualized here and then array of the" }, { "start": 2269.68, "duration": 0.0, "text": "visualized here and then array of the base<00:37:49.920> pointer<00:37:50.320> with<00:37:50.520> the<00:37:50.600> count" }, { "start": 2272.19, "duration": 0.0, "text": "base pointer with the count" }, { "start": 2272.2, "duration": 0.0, "text": "base pointer with the count right<00:37:52.360> here." }, { "start": 2273.43, "duration": 0.0, "text": "right here." }, { "start": 2273.44, "duration": 0.0, "text": "right here. Um" }, { "start": 2274.87, "duration": 0.0, "text": "Um" }, { "start": 2274.88, "duration": 0.0, "text": "Um And<00:37:55.000> that<00:37:55.120> actually<00:37:55.360> applies<00:37:55.640> for" }, { "start": 2275.75, "duration": 0.0, "text": "And that actually applies for" }, { "start": 2275.76, "duration": 0.0, "text": "And that actually applies for everything.<00:37:56.120> So,<00:37:56.360> if<00:37:56.560> I<00:37:56.600> go<00:37:56.720> back<00:37:56.920> to<00:37:57.000> that" }, { "start": 2277.15, "duration": 0.0, "text": "everything. So, if I go back to that" }, { "start": 2277.16, "duration": 0.0, "text": "everything. So, if I go back to that fancy<00:37:57.520> visualizer," }, { "start": 2279.07, "duration": 0.0, "text": "fancy visualizer," }, { "start": 2279.08, "duration": 0.0, "text": "fancy visualizer, uh" }, { "start": 2279.99, "duration": 0.0, "text": "uh" }, { "start": 2280.0, "duration": 0.0, "text": "uh eval<00:38:00.320> test,<00:38:01.080> um" }, { "start": 2282.11, "duration": 0.0, "text": "eval test, um" }, { "start": 2282.12, "duration": 0.0, "text": "eval test, um if<00:38:02.280> I<00:38:02.320> go<00:38:02.440> down<00:38:02.640> to<00:38:02.720> this<00:38:02.880> bitmap<00:38:03.280> type," }, { "start": 2284.91, "duration": 0.0, "text": "if I go down to this bitmap type," }, { "start": 2284.92, "duration": 0.0, "text": "if I go down to this bitmap type, you'll<00:38:05.120> see<00:38:05.280> that<00:38:05.600> it's<00:38:05.800> just<00:38:06.240> uh<00:38:06.640> this<00:38:06.840> is<00:38:06.960> a" }, { "start": 2286.99, "duration": 0.0, "text": "you'll see that it's just uh this is a" }, { "start": 2287.0, "duration": 0.0, "text": "you'll see that it's just uh this is a structure,<00:38:08.040> this<00:38:08.200> bitmap,<00:38:08.640> which<00:38:08.840> has<00:38:08.960> a<00:38:09.040> base" }, { "start": 2289.23, "duration": 0.0, "text": "structure, this bitmap, which has a base" }, { "start": 2289.24, "duration": 0.0, "text": "structure, this bitmap, which has a base pointer<00:38:09.600> and<00:38:09.720> a<00:38:09.760> width<00:38:09.960> and<00:38:10.040> a<00:38:10.080> height.<00:38:10.800> And" }, { "start": 2290.91, "duration": 0.0, "text": "pointer and a width and a height. And" }, { "start": 2290.92, "duration": 0.0, "text": "pointer and a width and a height. And there's<00:38:11.120> just<00:38:11.280> a<00:38:11.360> rule<00:38:11.600> somewhere<00:38:12.360> that<00:38:12.600> says" }, { "start": 2293.95, "duration": 0.0, "text": "there's just a rule somewhere that says" }, { "start": 2293.96, "duration": 0.0, "text": "there's just a rule somewhere that says um" }, { "start": 2294.87, "duration": 0.0, "text": "um" }, { "start": 2294.88, "duration": 0.0, "text": "um \"Hey,<00:38:15.640> if<00:38:15.800> you<00:38:15.920> have<00:38:16.080> a<00:38:16.120> type<00:38:16.560> if<00:38:16.680> you<00:38:16.760> have<00:38:16.840> an" }, { "start": 2296.91, "duration": 0.0, "text": "\"Hey, if you have a type if you have an" }, { "start": 2296.92, "duration": 0.0, "text": "\"Hey, if you have a type if you have an instance<00:38:17.240> of<00:38:17.320> type<00:38:17.520> bitmap,<00:38:18.440> visualize<00:38:18.920> this" }, { "start": 2299.55, "duration": 0.0, "text": "instance of type bitmap, visualize this" }, { "start": 2299.56, "duration": 0.0, "text": "instance of type bitmap, visualize this with<00:38:19.800> the<00:38:19.880> bitmap<00:38:20.240> view<00:38:20.920> applied<00:38:21.720> uh<00:38:21.800> the<00:38:21.840> base" }, { "start": 2302.07, "duration": 0.0, "text": "with the bitmap view applied uh the base" }, { "start": 2302.08, "duration": 0.0, "text": "with the bitmap view applied uh the base pointer<00:38:22.800> to<00:38:22.920> the<00:38:23.040> pixels<00:38:23.400> being<00:38:23.600> the<00:38:23.680> base<00:38:24.240> the" }, { "start": 2304.31, "duration": 0.0, "text": "pointer to the pixels being the base the" }, { "start": 2304.32, "duration": 0.0, "text": "pointer to the pixels being the base the base<00:38:24.520> member<00:38:24.880> and<00:38:25.000> then<00:38:25.120> the<00:38:25.240> width<00:38:25.400> and" }, { "start": 2305.51, "duration": 0.0, "text": "base member and then the width and" }, { "start": 2305.52, "duration": 0.0, "text": "base member and then the width and height<00:38:25.720> being<00:38:25.880> the<00:38:25.960> dimensions,<00:38:26.440> right?" }, { "start": 2306.59, "duration": 0.0, "text": "height being the dimensions, right?" }, { "start": 2306.6, "duration": 0.0, "text": "height being the dimensions, right? That's<00:38:26.800> all<00:38:27.520> That's<00:38:27.720> the<00:38:27.800> only<00:38:28.000> thing<00:38:28.200> that's" }, { "start": 2308.39, "duration": 0.0, "text": "That's all That's the only thing that's" }, { "start": 2308.4, "duration": 0.0, "text": "That's all That's the only thing that's in<00:38:28.520> there<00:38:28.920> and<00:38:29.320> and<00:38:29.800> that<00:38:29.920> gets<00:38:30.080> baked<00:38:30.320> into" }, { "start": 2310.47, "duration": 0.0, "text": "in there and and that gets baked into" }, { "start": 2310.48, "duration": 0.0, "text": "in there and and that gets baked into the<00:38:30.560> executable,<00:38:31.040> so<00:38:31.160> the<00:38:31.240> debugger<00:38:31.560> plugs<00:38:31.840> it" }, { "start": 2311.91, "duration": 0.0, "text": "the executable, so the debugger plugs it" }, { "start": 2311.92, "duration": 0.0, "text": "the executable, so the debugger plugs it into<00:38:32.160> its<00:38:32.600> evaluation<00:38:33.120> system." }, { "start": 2314.43, "duration": 0.0, "text": "into its evaluation system." }, { "start": 2314.44, "duration": 0.0, "text": "into its evaluation system. And<00:38:34.560> then<00:38:34.720> anytime<00:38:35.200> I<00:38:35.280> evaluate,<00:38:36.400> uh,<00:38:36.480> for" }, { "start": 2316.59, "duration": 0.0, "text": "And then anytime I evaluate, uh, for" }, { "start": 2316.6, "duration": 0.0, "text": "And then anytime I evaluate, uh, for example,<00:38:37.000> a<00:38:37.040> variable<00:38:37.400> called<00:38:37.640> foo<00:38:38.360> of<00:38:38.560> type" }, { "start": 2318.79, "duration": 0.0, "text": "example, a variable called foo of type" }, { "start": 2318.8, "duration": 0.0, "text": "example, a variable called foo of type of<00:38:38.880> it<00:38:39.000> map,<00:38:39.600> then<00:38:39.800> we<00:38:39.920> see<00:38:40.720> it's<00:38:40.920> just<00:38:41.320> the" }, { "start": 2321.91, "duration": 0.0, "text": "of it map, then we see it's just the" }, { "start": 2321.92, "duration": 0.0, "text": "of it map, then we see it's just the it's<00:38:42.080> just<00:38:42.240> the<00:38:42.280> bitmap<00:38:42.880> thing.<00:38:43.120> And<00:38:43.200> if<00:38:43.320> I" }, { "start": 2323.39, "duration": 0.0, "text": "it's just the bitmap thing. And if I" }, { "start": 2323.4, "duration": 0.0, "text": "it's just the bitmap thing. And if I want<00:38:43.600> to<00:38:43.680> get<00:38:43.800> back<00:38:43.960> to<00:38:44.040> the<00:38:44.160> original<00:38:44.600> view," }, { "start": 2325.87, "duration": 0.0, "text": "want to get back to the original view," }, { "start": 2325.88, "duration": 0.0, "text": "want to get back to the original view, then<00:38:46.000> I<00:38:46.080> just<00:38:46.240> do<00:38:46.400> raw.<00:38:46.960> It's<00:38:47.200> That's<00:38:47.440> what<00:38:47.520> the" }, { "start": 2327.63, "duration": 0.0, "text": "then I just do raw. It's That's what the" }, { "start": 2327.64, "duration": 0.0, "text": "then I just do raw. It's That's what the raw<00:38:47.840> thing<00:38:48.000> is<00:38:48.120> for,<00:38:48.360> right?<00:38:48.520> That's<00:38:49.080> That's" }, { "start": 2329.27, "duration": 0.0, "text": "raw thing is for, right? That's That's" }, { "start": 2329.28, "duration": 0.0, "text": "raw thing is for, right? That's That's me<00:38:49.400> saying,<00:38:49.640> \"Hey,<00:38:49.920> I<00:38:50.080> just<00:38:50.520> I<00:38:50.640> just<00:38:50.960> want<00:38:51.120> to" }, { "start": 2331.43, "duration": 0.0, "text": "me saying, \"Hey, I just I just want to" }, { "start": 2331.44, "duration": 0.0, "text": "me saying, \"Hey, I just I just want to look<00:38:51.640> at<00:38:51.720> this<00:38:51.880> how<00:38:52.000> the<00:38:52.080> debugger<00:38:52.400> would" }, { "start": 2332.51, "duration": 0.0, "text": "look at this how the debugger would" }, { "start": 2332.52, "duration": 0.0, "text": "look at this how the debugger would normally<00:38:52.920> look<00:38:53.160> at<00:38:53.240> it<00:38:53.320> without<00:38:53.560> any<00:38:53.720> of<00:38:53.800> the" }, { "start": 2333.87, "duration": 0.0, "text": "normally look at it without any of the" }, { "start": 2333.88, "duration": 0.0, "text": "normally look at it without any of the type<00:38:54.080> view<00:38:54.200> stuff.<00:38:54.440> Just<00:38:54.640> turn<00:38:54.800> it<00:38:54.920> all<00:38:55.080> off," }, { "start": 2335.59, "duration": 0.0, "text": "type view stuff. Just turn it all off," }, { "start": 2335.6, "duration": 0.0, "text": "type view stuff. Just turn it all off, get<00:38:55.720> a<00:38:55.760> base<00:38:55.960> pointer<00:38:56.320> with<00:38:56.520> and<00:38:56.640> height.\"" }, { "start": 2337.59, "duration": 0.0, "text": "get a base pointer with and height.\"" }, { "start": 2337.6, "duration": 0.0, "text": "get a base pointer with and height.\" Um," }, { "start": 2338.67, "duration": 0.0, "text": "Um," }, { "start": 2338.68, "duration": 0.0, "text": "Um, but<00:38:58.760> by<00:38:58.880> default,<00:38:59.280> obviously,<00:38:59.640> it's<00:38:59.800> more<00:39:00.200> if" }, { "start": 2340.31, "duration": 0.0, "text": "but by default, obviously, it's more if" }, { "start": 2340.32, "duration": 0.0, "text": "but by default, obviously, it's more if you<00:39:00.360> have<00:39:00.440> something<00:39:00.640> called<00:39:00.800> bitmap,<00:39:01.240> it" }, { "start": 2341.27, "duration": 0.0, "text": "you have something called bitmap, it" }, { "start": 2341.28, "duration": 0.0, "text": "you have something called bitmap, it might<00:39:01.400> be<00:39:01.480> convenient<00:39:01.880> to<00:39:01.960> look<00:39:02.120> at<00:39:02.200> it<00:39:02.320> as" }, { "start": 2342.47, "duration": 0.0, "text": "might be convenient to look at it as" }, { "start": 2342.48, "duration": 0.0, "text": "might be convenient to look at it as bitmap<00:39:02.840> by<00:39:02.920> default.<00:39:03.560> So," }, { "start": 2346.32, "duration": 0.0, "text": "hopefully,<00:39:07.360> that<00:39:08.160> is<00:39:08.280> a<00:39:08.320> pretty<00:39:08.520> good" }, { "start": 2348.67, "duration": 0.0, "text": "hopefully, that is a pretty good" }, { "start": 2348.68, "duration": 0.0, "text": "hopefully, that is a pretty good overview.<00:39:09.400> Um,<00:39:10.160> there's<00:39:10.320> lots<00:39:10.480> of<00:39:10.560> other" }, { "start": 2350.71, "duration": 0.0, "text": "overview. Um, there's lots of other" }, { "start": 2350.72, "duration": 0.0, "text": "overview. Um, there's lots of other things<00:39:11.080> like<00:39:11.840> more<00:39:12.040> traditional<00:39:12.480> debugger" }, { "start": 2352.83, "duration": 0.0, "text": "things like more traditional debugger" }, { "start": 2352.84, "duration": 0.0, "text": "things like more traditional debugger things<00:39:13.080> like<00:39:13.240> I<00:39:13.280> can<00:39:13.600> I<00:39:13.680> can<00:39:13.800> debug<00:39:14.040> multiple" }, { "start": 2354.35, "duration": 0.0, "text": "things like I can I can debug multiple" }, { "start": 2354.36, "duration": 0.0, "text": "things like I can I can debug multiple processes<00:39:14.880> at<00:39:15.000> once.<00:39:16.000> Um,<00:39:16.520> there's" }, { "start": 2356.71, "duration": 0.0, "text": "processes at once. Um, there's" }, { "start": 2356.72, "duration": 0.0, "text": "processes at once. Um, there's conditional<00:39:17.120> breakpoints,<00:39:17.760> there's<00:39:18.120> address" }, { "start": 2358.47, "duration": 0.0, "text": "conditional breakpoints, there's address" }, { "start": 2358.48, "duration": 0.0, "text": "conditional breakpoints, there's address breakpoints,<00:39:19.040> there's,<00:39:19.560> uh,<00:39:19.680> data" }, { "start": 2359.95, "duration": 0.0, "text": "breakpoints, there's, uh, data" }, { "start": 2359.96, "duration": 0.0, "text": "breakpoints, there's, uh, data breakpoints<00:39:20.480> as<00:39:20.600> well.<00:39:21.480> Um,<00:39:21.920> so<00:39:22.000> I<00:39:22.080> can<00:39:22.200> cover" }, { "start": 2362.47, "duration": 0.0, "text": "breakpoints as well. Um, so I can cover" }, { "start": 2362.48, "duration": 0.0, "text": "breakpoints as well. Um, so I can cover any<00:39:22.640> of<00:39:22.720> those,<00:39:22.960> but<00:39:23.080> those<00:39:23.240> are<00:39:23.320> all<00:39:23.400> kind<00:39:23.560> of" }, { "start": 2363.63, "duration": 0.0, "text": "any of those, but those are all kind of" }, { "start": 2363.64, "duration": 0.0, "text": "any of those, but those are all kind of common<00:39:23.960> debugger<00:39:24.280> functionality.<00:39:25.480> Um," }, { "start": 2366.55, "duration": 0.0, "text": "common debugger functionality. Um," }, { "start": 2366.56, "duration": 0.0, "text": "common debugger functionality. Um, but,<00:39:26.920> uh,<00:39:27.080> hopefully,<00:39:27.360> that's<00:39:27.480> a<00:39:27.520> good" }, { "start": 2367.67, "duration": 0.0, "text": "but, uh, hopefully, that's a good" }, { "start": 2367.68, "duration": 0.0, "text": "but, uh, hopefully, that's a good overview." }, { "start": 2368.67, "duration": 0.0, "text": "overview." }, { "start": 2368.68, "duration": 0.0, "text": "overview. Um," }, { "start": 2369.51, "duration": 0.0, "text": "Um," }, { "start": 2369.52, "duration": 0.0, "text": "Um, >> Nice." }, { "start": 2370.03, "duration": 0.0, "text": ">> Nice." }, { "start": 2370.04, "duration": 0.0, "text": ">> Nice. >> Yeah." }, { "start": 2371.63, "duration": 0.0, "text": ">> Yeah." }, { "start": 2371.64, "duration": 0.0, "text": ">> Yeah. >> Uh,<00:39:32.120> there<00:39:32.520> there<00:39:32.680> were<00:39:32.760> a<00:39:32.840> couple<00:39:33.280> of<00:39:33.600> wows<00:39:34.200> in" }, { "start": 2374.39, "duration": 0.0, "text": ">> Uh, there there were a couple of wows in" }, { "start": 2374.4, "duration": 0.0, "text": ">> Uh, there there were a couple of wows in the<00:39:34.640> chat<00:39:35.040> in<00:39:35.160> the<00:39:35.280> meantime<00:39:36.160> when<00:39:36.360> you<00:39:36.440> were" }, { "start": 2376.55, "duration": 0.0, "text": "the chat in the meantime when you were" }, { "start": 2376.56, "duration": 0.0, "text": "the chat in the meantime when you were doing<00:39:36.920> the<00:39:37.280> everything<00:39:37.680> is<00:39:37.800> a<00:39:37.880> watch<00:39:38.120> window" }, { "start": 2379.11, "duration": 0.0, "text": "doing the everything is a watch window" }, { "start": 2379.12, "duration": 0.0, "text": "doing the everything is a watch window uh,<00:39:39.560> reveals." }, { "start": 2380.75, "duration": 0.0, "text": "uh, reveals." }, { "start": 2380.76, "duration": 0.0, "text": "uh, reveals. And<00:39:40.840> there<00:39:40.960> were<00:39:41.040> also<00:39:41.240> a<00:39:41.280> couple<00:39:41.600> of" }, { "start": 2381.71, "duration": 0.0, "text": "And there were also a couple of" }, { "start": 2381.72, "duration": 0.0, "text": "And there were also a couple of questions<00:39:42.480> like<00:39:42.800> how<00:39:43.320> rad<00:39:43.600> debugger<00:39:43.960> works" }, { "start": 2384.31, "duration": 0.0, "text": "questions like how rad debugger works" }, { "start": 2384.32, "duration": 0.0, "text": "questions like how rad debugger works with,<00:39:44.840> uh,<00:39:45.160> sources<00:39:45.640> that<00:39:45.760> only<00:39:46.000> have,<00:39:46.200> for" }, { "start": 2386.31, "duration": 0.0, "text": "with, uh, sources that only have, for" }, { "start": 2386.32, "duration": 0.0, "text": "with, uh, sources that only have, for example,<00:39:47.040> debug<00:39:47.360> information<00:39:48.000> or<00:39:48.200> don't<00:39:49.200> and" }, { "start": 2389.43, "duration": 0.0, "text": "example, debug information or don't and" }, { "start": 2389.44, "duration": 0.0, "text": "example, debug information or don't and how<00:39:49.560> does<00:39:49.800> it<00:39:49.920> interplay<00:39:50.440> with<00:39:50.640> like,<00:39:51.240> um," }, { "start": 2391.59, "duration": 0.0, "text": "how does it interplay with like, um," }, { "start": 2391.6, "duration": 0.0, "text": "how does it interplay with like, um, other<00:39:51.840> libraries<00:39:52.360> and<00:39:52.520> other<00:39:52.720> source<00:39:53.000> code?" }, { "start": 2395.6, "duration": 0.0, "text": ">> Uh,<00:39:56.160> I<00:39:56.240> guess<00:39:56.440> I'm<00:39:56.560> not<00:39:56.880> 100%<00:39:57.400> sure<00:39:57.520> about<00:39:57.680> the" }, { "start": 2397.75, "duration": 0.0, "text": ">> Uh, I guess I'm not 100% sure about the" }, { "start": 2397.76, "duration": 0.0, "text": ">> Uh, I guess I'm not 100% sure about the question.<00:39:58.280> Like<00:39:58.440> if<00:39:58.560> you<00:39:58.640> don't<00:39:58.880> have<00:39:59.040> debug" }, { "start": 2399.35, "duration": 0.0, "text": "question. Like if you don't have debug" }, { "start": 2399.36, "duration": 0.0, "text": "question. Like if you don't have debug info,<00:40:00.040> then<00:40:00.560> what<00:40:00.880> The<00:40:01.040> only<00:40:01.200> thing<00:40:01.360> you<00:40:01.440> can" }, { "start": 2401.55, "duration": 0.0, "text": "info, then what The only thing you can" }, { "start": 2401.56, "duration": 0.0, "text": "info, then what The only thing you can really<00:40:01.760> do," }, { "start": 2402.79, "duration": 0.0, "text": "really do," }, { "start": 2402.8, "duration": 0.0, "text": "really do, um,<00:40:03.280> obviously,<00:40:03.600> there's<00:40:04.000> there<00:40:04.200> there's<00:40:04.520> a" }, { "start": 2404.55, "duration": 0.0, "text": "um, obviously, there's there there's a" }, { "start": 2404.56, "duration": 0.0, "text": "um, obviously, there's there there's a whole<00:40:04.800> family<00:40:05.280> of<00:40:05.440> reverse<00:40:05.760> engineering" }, { "start": 2406.19, "duration": 0.0, "text": "whole family of reverse engineering" }, { "start": 2406.2, "duration": 0.0, "text": "whole family of reverse engineering features<00:40:06.640> that<00:40:06.760> people<00:40:07.160> have<00:40:07.800> can<00:40:08.080> and<00:40:08.200> do<00:40:08.440> put" }, { "start": 2408.59, "duration": 0.0, "text": "features that people have can and do put" }, { "start": 2408.6, "duration": 0.0, "text": "features that people have can and do put into<00:40:08.800> their<00:40:08.920> debuggers.<00:40:09.960> Um,<00:40:10.320> the<00:40:10.400> rad" }, { "start": 2410.55, "duration": 0.0, "text": "into their debuggers. Um, the rad" }, { "start": 2410.56, "duration": 0.0, "text": "into their debuggers. Um, the rad debugger<00:40:10.800> is<00:40:10.920> more<00:40:11.480> more<00:40:11.760> focused<00:40:12.160> on<00:40:12.280> like" }, { "start": 2412.51, "duration": 0.0, "text": "debugger is more more focused on like" }, { "start": 2412.52, "duration": 0.0, "text": "debugger is more more focused on like the<00:40:12.600> cases<00:40:12.920> where<00:40:13.040> you<00:40:13.120> have<00:40:13.360> debug<00:40:13.640> info<00:40:13.960> cuz" }, { "start": 2414.11, "duration": 0.0, "text": "the cases where you have debug info cuz" }, { "start": 2414.12, "duration": 0.0, "text": "the cases where you have debug info cuz this<00:40:14.320> is,<00:40:14.520> you<00:40:14.600> know,<00:40:14.760> obviously,<00:40:15.040> it's<00:40:15.200> for" }, { "start": 2415.35, "duration": 0.0, "text": "this is, you know, obviously, it's for" }, { "start": 2415.36, "duration": 0.0, "text": "this is, you know, obviously, it's for game<00:40:15.600> developers.<00:40:16.320> Um,<00:40:16.640> as<00:40:16.800> a<00:40:16.960> first<00:40:18.040> as<00:40:18.200> kind" }, { "start": 2418.39, "duration": 0.0, "text": "game developers. Um, as a first as kind" }, { "start": 2418.4, "duration": 0.0, "text": "game developers. Um, as a first as kind of<00:40:18.440> like<00:40:18.640> the<00:40:19.160> intended<00:40:19.800> audience<00:40:20.240> or<00:40:20.440> just" }, { "start": 2420.67, "duration": 0.0, "text": "of like the intended audience or just" }, { "start": 2420.68, "duration": 0.0, "text": "of like the intended audience or just system<00:40:20.960> developers<00:40:21.440> working<00:40:21.720> on<00:40:21.840> system" }, { "start": 2422.11, "duration": 0.0, "text": "system developers working on system" }, { "start": 2422.12, "duration": 0.0, "text": "system developers working on system software.<00:40:23.200> And<00:40:23.400> so,<00:40:23.640> in<00:40:23.800> that<00:40:24.120> in<00:40:24.240> that" }, { "start": 2424.39, "duration": 0.0, "text": "software. And so, in that in that" }, { "start": 2424.4, "duration": 0.0, "text": "software. And so, in that in that context,<00:40:24.760> you<00:40:24.880> do<00:40:25.080> have<00:40:25.200> debug<00:40:25.480> info.<00:40:25.760> So,<00:40:25.920> we" }, { "start": 2426.07, "duration": 0.0, "text": "context, you do have debug info. So, we" }, { "start": 2426.08, "duration": 0.0, "text": "context, you do have debug info. So, we haven't<00:40:26.400> spent<00:40:26.600> a<00:40:26.640> lot<00:40:26.800> of<00:40:26.880> time<00:40:27.080> doing" }, { "start": 2427.35, "duration": 0.0, "text": "haven't spent a lot of time doing" }, { "start": 2427.36, "duration": 0.0, "text": "haven't spent a lot of time doing reverse<00:40:27.680> engineering<00:40:28.120> type<00:40:28.320> stuff<00:40:28.640> where<00:40:28.760> you" }, { "start": 2428.95, "duration": 0.0, "text": "reverse engineering type stuff where you" }, { "start": 2428.96, "duration": 0.0, "text": "reverse engineering type stuff where you cannot<00:40:29.320> be<00:40:29.520> guaranteed<00:40:30.000> to<00:40:30.080> have<00:40:30.280> debug<00:40:30.560> info." }, { "start": 2431.59, "duration": 0.0, "text": "cannot be guaranteed to have debug info." }, { "start": 2431.6, "duration": 0.0, "text": "cannot be guaranteed to have debug info. Um<00:40:32.200> you<00:40:32.320> can<00:40:32.440> still<00:40:32.600> debug,<00:40:33.240> but<00:40:33.400> it's<00:40:33.520> just" }, { "start": 2433.67, "duration": 0.0, "text": "Um you can still debug, but it's just" }, { "start": 2433.68, "duration": 0.0, "text": "Um you can still debug, but it's just going<00:40:33.800> to<00:40:33.880> be<00:40:34.040> hey,<00:40:34.280> you<00:40:34.360> have<00:40:34.520> disassembly," }, { "start": 2435.39, "duration": 0.0, "text": "going to be hey, you have disassembly," }, { "start": 2435.4, "duration": 0.0, "text": "going to be hey, you have disassembly, you<00:40:35.480> can<00:40:35.600> look<00:40:35.760> at<00:40:35.840> memory,<00:40:36.600> but<00:40:36.840> there's<00:40:37.040> no" }, { "start": 2437.27, "duration": 0.0, "text": "you can look at memory, but there's no" }, { "start": 2437.28, "duration": 0.0, "text": "you can look at memory, but there's no information<00:40:37.720> about<00:40:37.960> like<00:40:38.160> what<00:40:38.320> variables" }, { "start": 2438.79, "duration": 0.0, "text": "information about like what variables" }, { "start": 2438.8, "duration": 0.0, "text": "information about like what variables are<00:40:38.880> there<00:40:39.160> or<00:40:39.240> type<00:40:39.560> info<00:40:39.960> or<00:40:40.040> like<00:40:40.240> any<00:40:40.400> of" }, { "start": 2440.47, "duration": 0.0, "text": "are there or type info or like any of" }, { "start": 2440.48, "duration": 0.0, "text": "are there or type info or like any of that.<00:40:40.840> All<00:40:41.000> of<00:40:41.040> that's<00:40:41.240> not<00:40:41.440> in<00:40:41.560> there.<00:40:42.120> Um" }, { "start": 2442.19, "duration": 0.0, "text": "that. All of that's not in there. Um" }, { "start": 2442.2, "duration": 0.0, "text": "that. All of that's not in there. Um there's<00:40:42.360> no<00:40:42.480> line<00:40:42.760> info.<00:40:43.880> Um" }, { "start": 2445.11, "duration": 0.0, "text": "there's no line info. Um" }, { "start": 2445.12, "duration": 0.0, "text": "there's no line info. Um anything<00:40:45.440> like<00:40:45.600> that.<00:40:45.800> So,<00:40:46.080> if<00:40:46.200> you<00:40:46.280> don't" }, { "start": 2446.43, "duration": 0.0, "text": "anything like that. So, if you don't" }, { "start": 2446.44, "duration": 0.0, "text": "anything like that. So, if you don't have<00:40:46.560> debug<00:40:46.840> info,<00:40:47.160> it's<00:40:47.320> going<00:40:47.440> to<00:40:47.480> be<00:40:47.560> pretty" }, { "start": 2447.83, "duration": 0.0, "text": "have debug info, it's going to be pretty" }, { "start": 2447.84, "duration": 0.0, "text": "have debug info, it's going to be pretty bare-bones.<00:40:48.800> Uh<00:40:49.120> we<00:40:49.240> don't<00:40:49.400> have<00:40:49.520> a<00:40:49.560> whole<00:40:49.760> lot" }, { "start": 2449.91, "duration": 0.0, "text": "bare-bones. Uh we don't have a whole lot" }, { "start": 2449.92, "duration": 0.0, "text": "bare-bones. Uh we don't have a whole lot of<00:40:50.400> um" }, { "start": 2451.43, "duration": 0.0, "text": "of um" }, { "start": 2451.44, "duration": 0.0, "text": "of um whole<00:40:51.600> lot<00:40:51.800> of<00:40:51.960> like<00:40:52.320> reverse<00:40:52.600> engineering" }, { "start": 2453.03, "duration": 0.0, "text": "whole lot of like reverse engineering" }, { "start": 2453.04, "duration": 0.0, "text": "whole lot of like reverse engineering type<00:40:53.240> stuff." }, { "start": 2454.27, "duration": 0.0, "text": "type stuff." }, { "start": 2454.28, "duration": 0.0, "text": "type stuff. Um" }, { "start": 2455.19, "duration": 0.0, "text": "Um" }, { "start": 2455.2, "duration": 0.0, "text": "Um but<00:40:55.560> uh" }, { "start": 2456.75, "duration": 0.0, "text": "but uh" }, { "start": 2456.76, "duration": 0.0, "text": "but uh Uh<00:40:56.960> what<00:40:57.120> was<00:40:57.200> the<00:40:57.280> other<00:40:57.400> part<00:40:57.520> of<00:40:57.600> the" }, { "start": 2457.63, "duration": 0.0, "text": "Uh what was the other part of the" }, { "start": 2457.64, "duration": 0.0, "text": "Uh what was the other part of the question?<00:40:58.160> I<00:40:58.560> think<00:40:58.800> that<00:40:58.920> might<00:40:59.160> have" }, { "start": 2459.27, "duration": 0.0, "text": "question? I think that might have" }, { "start": 2459.28, "duration": 0.0, "text": "question? I think that might have covered<00:40:59.560> it,<00:40:59.640> but<00:40:59.840> if<00:41:00.000> not,<00:41:00.600> uh<00:41:00.880> let<00:41:01.000> me<00:41:01.080> know." }, { "start": 2461.59, "duration": 0.0, "text": "covered it, but if not, uh let me know." }, { "start": 2461.6, "duration": 0.0, "text": "covered it, but if not, uh let me know. >> I<00:41:01.680> think<00:41:01.960> that's<00:41:02.200> it.<00:41:02.600> The<00:41:03.240> that<00:41:03.440> was<00:41:03.600> the<00:41:04.040> like" }, { "start": 2464.27, "duration": 0.0, "text": ">> I think that's it. The that was the like" }, { "start": 2464.28, "duration": 0.0, "text": ">> I think that's it. The that was the like how<00:41:04.520> how<00:41:04.680> to<00:41:04.840> interface<00:41:05.320> with<00:41:05.520> other<00:41:05.760> things." }, { "start": 2466.35, "duration": 0.0, "text": "how how to interface with other things." }, { "start": 2466.36, "duration": 0.0, "text": "how how to interface with other things. I<00:41:06.520> also<00:41:06.880> put<00:41:07.080> it" }, { "start": 2467.87, "duration": 0.0, "text": "I also put it" }, { "start": 2467.88, "duration": 0.0, "text": "I also put it a<00:41:08.240> I<00:41:08.320> put<00:41:08.640> a<00:41:08.760> link<00:41:09.160> in<00:41:09.280> the<00:41:09.400> chat<00:41:10.160> regarding<00:41:10.600> the" }, { "start": 2470.83, "duration": 0.0, "text": "a I put a link in the chat regarding the" }, { "start": 2470.84, "duration": 0.0, "text": "a I put a link in the chat regarding the Q&A.<00:41:11.560> If<00:41:11.800> there's<00:41:12.120> something<00:41:12.440> that<00:41:12.640> we<00:41:12.760> missed" }, { "start": 2473.75, "duration": 0.0, "text": "Q&A. If there's something that we missed" }, { "start": 2473.76, "duration": 0.0, "text": "Q&A. If there's something that we missed uh<00:41:14.560> and<00:41:14.680> I<00:41:14.720> missed<00:41:15.000> through<00:41:15.120> during<00:41:15.360> the<00:41:15.480> chat," }, { "start": 2475.95, "duration": 0.0, "text": "uh and I missed through during the chat," }, { "start": 2475.96, "duration": 0.0, "text": "uh and I missed through during the chat, people<00:41:16.280> can<00:41:16.760> put<00:41:16.960> it<00:41:17.080> there." }, { "start": 2478.23, "duration": 0.0, "text": "people can put it there." }, { "start": 2478.24, "duration": 0.0, "text": "people can put it there. And" }, { "start": 2478.99, "duration": 0.0, "text": "And" }, { "start": 2479.0, "duration": 0.0, "text": "And >> Cool." }, { "start": 2480.19, "duration": 0.0, "text": ">> Cool." }, { "start": 2480.2, "duration": 0.0, "text": ">> Cool. >> Oh,<00:41:20.360> I<00:41:20.440> actually<00:41:20.760> missed<00:41:20.960> like<00:41:21.320> 50<00:41:22.240> messages" }, { "start": 2482.71, "duration": 0.0, "text": ">> Oh, I actually missed like 50 messages" }, { "start": 2482.72, "duration": 0.0, "text": ">> Oh, I actually missed like 50 messages now<00:41:22.880> because<00:41:23.240> my<00:41:23.840> my<00:41:24.000> YouTube<00:41:24.520> my<00:41:24.640> YouTube" }, { "start": 2484.95, "duration": 0.0, "text": "now because my my YouTube my YouTube" }, { "start": 2484.96, "duration": 0.0, "text": "now because my my YouTube my YouTube chat<00:41:25.200> was<00:41:25.360> frozen.<00:41:26.160> So," }, { "start": 2487.35, "duration": 0.0, "text": "chat was frozen. So," }, { "start": 2487.36, "duration": 0.0, "text": "chat was frozen. So, you<00:41:27.480> can<00:41:27.800> you<00:41:27.880> can<00:41:28.080> put<00:41:28.320> those<00:41:28.600> in<00:41:29.120> and" }, { "start": 2490.15, "duration": 0.0, "text": "you can you can put those in and" }, { "start": 2490.16, "duration": 0.0, "text": "you can you can put those in and uh<00:41:30.280> we<00:41:30.440> will<00:41:30.560> come<00:41:30.800> back<00:41:31.200> maybe<00:41:31.440> in<00:41:31.560> the<00:41:31.680> end." }, { "start": 2492.51, "duration": 0.0, "text": "uh we will come back maybe in the end." }, { "start": 2492.52, "duration": 0.0, "text": "uh we will come back maybe in the end. >> Um" }, { "start": 2493.07, "duration": 0.0, "text": ">> Um" }, { "start": 2493.08, "duration": 0.0, "text": ">> Um >> Cool." }, { "start": 2494.258, "duration": 0.0, "text": ">> Cool." }, { "start": 2494.268, "duration": 0.0, "text": ">> Cool. >> [snorts]" }, { "start": 2494.27, "duration": 0.0, "text": ">> [snorts]" }, { "start": 2494.28, "duration": 0.0, "text": ">> [snorts] >> Nice." }, { "start": 2495.55, "duration": 0.0, "text": ">> Nice." }, { "start": 2495.56, "duration": 0.0, "text": ">> Nice. Now," }, { "start": 2496.35, "duration": 0.0, "text": "Now," }, { "start": 2496.36, "duration": 0.0, "text": "Now, >> Yeah." }, { "start": 2496.87, "duration": 0.0, "text": ">> Yeah." }, { "start": 2496.88, "duration": 0.0, "text": ">> Yeah. >> is<00:41:37.080> this" }, { "start": 2497.43, "duration": 0.0, "text": ">> is this" }, { "start": 2497.44, "duration": 0.0, "text": ">> is this >> Oh,<00:41:37.520> I<00:41:37.560> guess<00:41:37.760> I<00:41:37.840> should" }, { "start": 2498.47, "duration": 0.0, "text": ">> Oh, I guess I should" }, { "start": 2498.48, "duration": 0.0, "text": ">> Oh, I guess I should >> Yeah." }, { "start": 2499.15, "duration": 0.0, "text": ">> Yeah." }, { "start": 2499.16, "duration": 0.0, "text": ">> Yeah. >> Well,<00:41:39.560> yes.<00:41:39.960> Okay,<00:41:40.200> so<00:41:40.400> one<00:41:40.640> more<00:41:40.840> thing<00:41:41.120> I" }, { "start": 2501.19, "duration": 0.0, "text": ">> Well, yes. Okay, so one more thing I" }, { "start": 2501.2, "duration": 0.0, "text": ">> Well, yes. Okay, so one more thing I should<00:41:41.400> probably<00:41:41.760> do<00:41:42.480> is<00:41:42.680> show<00:41:43.400> one<00:41:43.760> Maybe" }, { "start": 2503.99, "duration": 0.0, "text": "should probably do is show one Maybe" }, { "start": 2504.0, "duration": 0.0, "text": "should probably do is show one Maybe this<00:41:44.160> is<00:41:44.240> related<00:41:44.560> to<00:41:44.640> that<00:41:44.800> question,<00:41:45.160> but<00:41:45.480> um" }, { "start": 2505.71, "duration": 0.0, "text": "this is related to that question, but um" }, { "start": 2505.72, "duration": 0.0, "text": "this is related to that question, but um cross-language<00:41:46.480> support.<00:41:47.560> Um<00:41:48.360> so,<00:41:48.960> uh" }, { "start": 2509.51, "duration": 0.0, "text": "cross-language support. Um so, uh" }, { "start": 2509.52, "duration": 0.0, "text": "cross-language support. Um so, uh like<00:41:49.720> for<00:41:49.880> example,<00:41:50.240> if<00:41:50.320> I<00:41:50.400> wanted<00:41:50.600> to<00:41:50.680> debug" }, { "start": 2511.15, "duration": 0.0, "text": "like for example, if I wanted to debug" }, { "start": 2511.16, "duration": 0.0, "text": "like for example, if I wanted to debug like<00:41:51.440> JAI,<00:41:52.240> for<00:41:52.360> example,<00:41:53.400> um<00:41:54.280> this<00:41:54.440> uses<00:41:54.760> the" }, { "start": 2514.87, "duration": 0.0, "text": "like JAI, for example, um this uses the" }, { "start": 2514.88, "duration": 0.0, "text": "like JAI, for example, um this uses the same<00:41:55.240> type<00:41:55.520> of<00:41:55.600> debug<00:41:55.880> info<00:41:56.200> that<00:41:57.040> uh<00:41:57.440> like<00:41:57.720> C" }, { "start": 2517.95, "duration": 0.0, "text": "same type of debug info that uh like C" }, { "start": 2517.96, "duration": 0.0, "text": "same type of debug info that uh like C and<00:41:58.080> C++<00:41:58.520> do.<00:41:59.120> So,<00:41:59.440> the<00:41:59.880> the<00:41:59.960> JAI<00:42:00.280> compiler" }, { "start": 2521.67, "duration": 0.0, "text": "and C++ do. So, the the JAI compiler" }, { "start": 2521.68, "duration": 0.0, "text": "and C++ do. So, the the JAI compiler produces<00:42:02.520> uh<00:42:02.720> code<00:42:02.960> view<00:42:03.080> data,<00:42:03.440> which<00:42:03.920> um<00:42:04.280> I" }, { "start": 2524.31, "duration": 0.0, "text": "produces uh code view data, which um I" }, { "start": 2524.32, "duration": 0.0, "text": "produces uh code view data, which um I think<00:42:04.520> it<00:42:04.640> uses<00:42:05.160> the<00:42:05.280> MSVC<00:42:05.720> linker.<00:42:06.520> And<00:42:06.640> so," }, { "start": 2526.75, "duration": 0.0, "text": "think it uses the MSVC linker. And so," }, { "start": 2526.76, "duration": 0.0, "text": "think it uses the MSVC linker. And so, the<00:42:06.840> linker<00:42:07.160> will<00:42:07.400> stitch<00:42:07.680> those<00:42:07.880> together" }, { "start": 2528.11, "duration": 0.0, "text": "the linker will stitch those together" }, { "start": 2528.12, "duration": 0.0, "text": "the linker will stitch those together and<00:42:08.240> form<00:42:08.440> a<00:42:08.480> PDB,<00:42:09.000> which<00:42:09.200> the<00:42:09.280> debugger<00:42:09.600> knows" }, { "start": 2529.75, "duration": 0.0, "text": "and form a PDB, which the debugger knows" }, { "start": 2529.76, "duration": 0.0, "text": "and form a PDB, which the debugger knows how<00:42:09.840> to<00:42:09.920> work<00:42:10.120> with.<00:42:10.320> So,<00:42:11.080> if<00:42:11.200> I<00:42:11.240> have<00:42:11.360> a<00:42:11.400> JAI" }, { "start": 2531.83, "duration": 0.0, "text": "how to work with. So, if I have a JAI" }, { "start": 2531.84, "duration": 0.0, "text": "how to work with. So, if I have a JAI executable,<00:42:12.400> like<00:42:12.560> this<00:42:12.680> is<00:42:12.760> the<00:42:12.880> JAI" }, { "start": 2533.31, "duration": 0.0, "text": "executable, like this is the JAI" }, { "start": 2533.32, "duration": 0.0, "text": "executable, like this is the JAI Invaders,<00:42:14.200> um" }, { "start": 2535.63, "duration": 0.0, "text": "Invaders, um" }, { "start": 2535.64, "duration": 0.0, "text": "Invaders, um this<00:42:16.200> uh<00:42:16.320> this<00:42:16.480> also<00:42:16.680> just<00:42:16.920> works." }, { "start": 2537.87, "duration": 0.0, "text": "this uh this also just works." }, { "start": 2537.88, "duration": 0.0, "text": "this uh this also just works. Um<00:42:18.280> so,<00:42:18.640> here's<00:42:19.000> just<00:42:19.200> the<00:42:19.280> JAI<00:42:19.680> code,<00:42:20.080> and" }, { "start": 2540.19, "duration": 0.0, "text": "Um so, here's just the JAI code, and" }, { "start": 2540.2, "duration": 0.0, "text": "Um so, here's just the JAI code, and here's<00:42:20.840> me<00:42:21.040> stepping<00:42:21.360> through<00:42:21.600> it,<00:42:21.880> you<00:42:21.920> know," }, { "start": 2542.27, "duration": 0.0, "text": "here's me stepping through it, you know," }, { "start": 2542.28, "duration": 0.0, "text": "here's me stepping through it, you know, normal<00:42:22.560> stuff." }, { "start": 2543.71, "duration": 0.0, "text": "normal stuff." }, { "start": 2543.72, "duration": 0.0, "text": "normal stuff. And<00:42:23.840> those<00:42:24.000> type<00:42:24.280> views<00:42:24.560> come<00:42:24.720> in<00:42:24.840> handy<00:42:25.200> with" }, { "start": 2545.67, "duration": 0.0, "text": "And those type views come in handy with" }, { "start": 2545.68, "duration": 0.0, "text": "And those type views come in handy with uh<00:42:25.920> with<00:42:26.360> languages<00:42:26.800> like<00:42:27.000> JAI<00:42:27.640> because<00:42:28.240> um<00:42:28.840> if" }, { "start": 2548.99, "duration": 0.0, "text": "uh with languages like JAI because um if" }, { "start": 2549.0, "duration": 0.0, "text": "uh with languages like JAI because um if I<00:42:29.080> were<00:42:29.200> to<00:42:29.280> evaluate<00:42:29.760> strings<00:42:30.200> like<00:42:30.520> uh<00:42:30.600> we" }, { "start": 2550.71, "duration": 0.0, "text": "I were to evaluate strings like uh we" }, { "start": 2550.72, "duration": 0.0, "text": "I were to evaluate strings like uh we have<00:42:30.800> this<00:42:30.960> base<00:42:31.480> base<00:42:31.760> path<00:42:32.640> thing,<00:42:33.000> you<00:42:33.080> can" }, { "start": 2553.19, "duration": 0.0, "text": "have this base base path thing, you can" }, { "start": 2553.2, "duration": 0.0, "text": "have this base base path thing, you can see<00:42:33.360> it's<00:42:33.520> like<00:42:34.280> the<00:42:34.360> way<00:42:34.480> these<00:42:34.720> languages" }, { "start": 2555.15, "duration": 0.0, "text": "see it's like the way these languages" }, { "start": 2555.16, "duration": 0.0, "text": "see it's like the way these languages generate<00:42:35.760> these<00:42:36.560> uh<00:42:36.680> like" }, { "start": 2557.43, "duration": 0.0, "text": "generate these uh like" }, { "start": 2557.44, "duration": 0.0, "text": "generate these uh like string<00:42:37.720> variables,<00:42:38.040> like<00:42:38.160> generally<00:42:38.480> these" }, { "start": 2558.59, "duration": 0.0, "text": "string variables, like generally these" }, { "start": 2558.6, "duration": 0.0, "text": "string variables, like generally these languages<00:42:38.960> will<00:42:39.080> first-class<00:42:39.600> strings,<00:42:39.960> but" }, { "start": 2560.63, "duration": 0.0, "text": "languages will first-class strings, but" }, { "start": 2560.64, "duration": 0.0, "text": "languages will first-class strings, but because<00:42:40.880> they're<00:42:41.040> not<00:42:41.480> um<00:42:41.960> living<00:42:42.600> under<00:42:43.000> a" }, { "start": 2563.07, "duration": 0.0, "text": "because they're not um living under a" }, { "start": 2563.08, "duration": 0.0, "text": "because they're not um living under a rock,<00:42:43.360> they<00:42:43.480> know<00:42:43.640> to<00:42:43.760> make<00:42:43.960> them" }, { "start": 2564.59, "duration": 0.0, "text": "rock, they know to make them" }, { "start": 2564.6, "duration": 0.0, "text": "rock, they know to make them length-based<00:42:45.280> strings,<00:42:45.720> right?<00:42:45.920> So,<00:42:46.480> uh<00:42:46.600> JAI" }, { "start": 2566.95, "duration": 0.0, "text": "length-based strings, right? So, uh JAI" }, { "start": 2566.96, "duration": 0.0, "text": "length-based strings, right? So, uh JAI does<00:42:47.160> this.<00:42:47.360> It's<00:42:47.480> like<00:42:47.640> when<00:42:47.800> you<00:42:47.920> use<00:42:48.120> string" }, { "start": 2568.35, "duration": 0.0, "text": "does this. It's like when you use string" }, { "start": 2568.36, "duration": 0.0, "text": "does this. It's like when you use string literals,<00:42:48.760> it<00:42:48.840> just<00:42:49.040> returns<00:42:49.400> you<00:42:49.560> a<00:42:49.600> type<00:42:49.960> of" }, { "start": 2570.19, "duration": 0.0, "text": "literals, it just returns you a type of" }, { "start": 2570.2, "duration": 0.0, "text": "literals, it just returns you a type of this<00:42:50.600> string<00:42:50.920> structure.<00:42:51.880> And<00:42:51.960> that<00:42:52.080> has<00:42:52.200> a" }, { "start": 2572.23, "duration": 0.0, "text": "this string structure. And that has a" }, { "start": 2572.24, "duration": 0.0, "text": "this string structure. And that has a count<00:42:52.920> and<00:42:53.040> a<00:42:53.080> data,<00:42:53.720> which<00:42:53.920> means<00:42:54.480> we<00:42:54.600> can<00:42:54.720> do" }, { "start": 2575.43, "duration": 0.0, "text": "count and a data, which means we can do" }, { "start": 2575.44, "duration": 0.0, "text": "count and a data, which means we can do um" }, { "start": 2576.35, "duration": 0.0, "text": "um" }, { "start": 2576.36, "duration": 0.0, "text": "um uh<00:42:56.600> we<00:42:56.720> can<00:42:56.840> basically<00:42:57.240> do,<00:42:57.560> \"Hey,<00:42:57.840> array" }, { "start": 2578.39, "duration": 0.0, "text": "uh we can basically do, \"Hey, array" }, { "start": 2578.4, "duration": 0.0, "text": "uh we can basically do, \"Hey, array basepath.data.\"" }, { "start": 2580.15, "duration": 0.0, "text": "basepath.data.\"" }, { "start": 2580.16, "duration": 0.0, "text": "basepath.data.\" Um" }, { "start": 2581.43, "duration": 0.0, "text": "Um" }, { "start": 2581.44, "duration": 0.0, "text": "Um and<00:43:01.560> then<00:43:01.720> basepath.count" }, { "start": 2583.27, "duration": 0.0, "text": "and then basepath.count" }, { "start": 2583.28, "duration": 0.0, "text": "and then basepath.count if<00:43:03.400> we<00:43:03.520> want<00:43:03.720> to,<00:43:04.440> and<00:43:04.560> that'll<00:43:04.760> just<00:43:04.960> show<00:43:05.200> us" }, { "start": 2585.43, "duration": 0.0, "text": "if we want to, and that'll just show us" }, { "start": 2585.44, "duration": 0.0, "text": "if we want to, and that'll just show us just<00:43:05.640> the<00:43:05.720> string<00:43:05.960> literal<00:43:06.880> when<00:43:07.080> we<00:43:07.160> evaluate" }, { "start": 2587.63, "duration": 0.0, "text": "just the string literal when we evaluate" }, { "start": 2587.64, "duration": 0.0, "text": "just the string literal when we evaluate it<00:43:07.840> in<00:43:07.960> the<00:43:08.040> watch<00:43:08.240> window." }, { "start": 2589.51, "duration": 0.0, "text": "it in the watch window." }, { "start": 2589.52, "duration": 0.0, "text": "it in the watch window. And<00:43:09.680> then,<00:43:10.040> so<00:43:10.760> I<00:43:10.880> showed<00:43:11.200> how<00:43:11.320> to<00:43:11.440> embed<00:43:11.960> type" }, { "start": 2592.19, "duration": 0.0, "text": "And then, so I showed how to embed type" }, { "start": 2592.2, "duration": 0.0, "text": "And then, so I showed how to embed type views<00:43:12.480> into<00:43:12.760> the<00:43:12.960> executables<00:43:13.480> themselves," }, { "start": 2594.03, "duration": 0.0, "text": "views into the executables themselves," }, { "start": 2594.04, "duration": 0.0, "text": "views into the executables themselves, but<00:43:14.160> you<00:43:14.200> can<00:43:14.320> also<00:43:14.480> do<00:43:14.600> this<00:43:14.720> dynamically<00:43:15.240> in" }, { "start": 2595.35, "duration": 0.0, "text": "but you can also do this dynamically in" }, { "start": 2595.36, "duration": 0.0, "text": "but you can also do this dynamically in the<00:43:15.440> debugger<00:43:15.800> UI.<00:43:16.440> So,<00:43:16.560> if<00:43:16.680> I<00:43:16.760> did<00:43:17.200> uh<00:43:17.280> I<00:43:17.360> can" }, { "start": 2597.47, "duration": 0.0, "text": "the debugger UI. So, if I did uh I can" }, { "start": 2597.48, "duration": 0.0, "text": "the debugger UI. So, if I did uh I can open<00:43:17.640> up<00:43:17.720> the<00:43:17.800> type<00:43:18.040> views<00:43:18.280> tab," }, { "start": 2599.47, "duration": 0.0, "text": "open up the type views tab," }, { "start": 2599.48, "duration": 0.0, "text": "open up the type views tab, which<00:43:19.680> is<00:43:19.760> also<00:43:20.000> a<00:43:20.040> watch<00:43:20.240> window,<00:43:20.920> and<00:43:21.040> we<00:43:21.120> can" }, { "start": 2601.23, "duration": 0.0, "text": "which is also a watch window, and we can" }, { "start": 2601.24, "duration": 0.0, "text": "which is also a watch window, and we can say,<00:43:21.560> \"Hey,<00:43:21.800> like<00:43:22.000> this<00:43:22.240> string<00:43:22.920> type,<00:43:23.280> I<00:43:23.360> just" }, { "start": 2603.63, "duration": 0.0, "text": "say, \"Hey, like this string type, I just" }, { "start": 2603.64, "duration": 0.0, "text": "say, \"Hey, like this string type, I just always<00:43:24.000> want<00:43:24.120> to<00:43:24.200> do<00:43:24.440> array,<00:43:25.080> and<00:43:25.200> then<00:43:25.360> what" }, { "start": 2605.47, "duration": 0.0, "text": "always want to do array, and then what" }, { "start": 2605.48, "duration": 0.0, "text": "always want to do array, and then what is<00:43:25.680> the<00:43:25.920> what<00:43:26.040> is<00:43:26.120> the<00:43:26.200> member<00:43:26.480> called<00:43:26.760> here?\"" }, { "start": 2607.51, "duration": 0.0, "text": "is the what is the member called here?\"" }, { "start": 2607.52, "duration": 0.0, "text": "is the what is the member called here?\" It's<00:43:27.800> um" }, { "start": 2608.55, "duration": 0.0, "text": "It's um" }, { "start": 2608.56, "duration": 0.0, "text": "It's um >> Data<00:43:29.200> and<00:43:29.320> count." }, { "start": 2610.35, "duration": 0.0, "text": ">> Data and count." }, { "start": 2610.36, "duration": 0.0, "text": ">> Data and count. >> Data<00:43:30.640> and<00:43:30.760> count,<00:43:31.040> so<00:43:31.120> I<00:43:31.160> can<00:43:31.280> do,<00:43:31.440> \"Hey,<00:43:31.760> array" }, { "start": 2612.19, "duration": 0.0, "text": ">> Data and count, so I can do, \"Hey, array" }, { "start": 2612.2, "duration": 0.0, "text": ">> Data and count, so I can do, \"Hey, array data<00:43:32.760> count.\"" }, { "start": 2615.07, "duration": 0.0, "text": "data count.\"" }, { "start": 2615.08, "duration": 0.0, "text": "data count.\" And<00:43:35.280> so,<00:43:35.520> now<00:43:35.920> if<00:43:36.080> I<00:43:36.160> do,<00:43:36.480> \"Hey,<00:43:36.640> basepath," }, { "start": 2617.39, "duration": 0.0, "text": "And so, now if I do, \"Hey, basepath," }, { "start": 2617.4, "duration": 0.0, "text": "And so, now if I do, \"Hey, basepath, what<00:43:37.520> is<00:43:37.640> that?\"<00:43:38.080> It's<00:43:38.200> just<00:43:38.360> going<00:43:38.480> to<00:43:38.560> show" }, { "start": 2618.75, "duration": 0.0, "text": "what is that?\" It's just going to show" }, { "start": 2618.76, "duration": 0.0, "text": "what is that?\" It's just going to show me<00:43:38.960> the<00:43:39.080> string.<00:43:39.880> Um" }, { "start": 2622.19, "duration": 0.0, "text": "me the string. Um" }, { "start": 2622.2, "duration": 0.0, "text": "me the string. Um uh" }, { "start": 2622.75, "duration": 0.0, "text": "uh" }, { "start": 2622.76, "duration": 0.0, "text": "uh Same<00:43:43.000> thing<00:43:43.120> with<00:43:43.200> like<00:43:43.360> slices,<00:43:43.880> for" }, { "start": 2623.99, "duration": 0.0, "text": "Same thing with like slices, for" }, { "start": 2624.0, "duration": 0.0, "text": "Same thing with like slices, for example,<00:43:44.400> like<00:43:44.560> if<00:43:44.680> I<00:43:44.720> wanted<00:43:44.960> to<00:43:45.040> do,<00:43:45.200> \"Hey," }, { "start": 2625.43, "duration": 0.0, "text": "example, like if I wanted to do, \"Hey," }, { "start": 2625.44, "duration": 0.0, "text": "example, like if I wanted to do, \"Hey, like<00:43:45.680> let's<00:43:45.920> do<00:43:46.200> every<00:43:46.440> time<00:43:46.720> we<00:43:46.840> have<00:43:47.920> a<00:43:48.960> uh<00:43:49.320> a" }, { "start": 2629.39, "duration": 0.0, "text": "like let's do every time we have a uh a" }, { "start": 2629.4, "duration": 0.0, "text": "like let's do every time we have a uh a slice<00:43:49.880> type," }, { "start": 2633.4, "duration": 0.0, "text": "um<00:43:54.080> now<00:43:54.200> I<00:43:54.240> don't<00:43:54.440> actually<00:43:54.680> know<00:43:54.840> what<00:43:54.920> the" }, { "start": 2634.99, "duration": 0.0, "text": "um now I don't actually know what the" }, { "start": 2635.0, "duration": 0.0, "text": "um now I don't actually know what the type<00:43:55.200> info<00:43:55.440> for<00:43:55.560> these<00:43:55.800> look<00:43:56.000> like,<00:43:56.200> so<00:43:56.720> I<00:43:56.800> feel" }, { "start": 2637.11, "duration": 0.0, "text": "type info for these look like, so I feel" }, { "start": 2637.12, "duration": 0.0, "text": "type info for these look like, so I feel >> Slice<00:43:57.520> slice<00:43:58.000> is<00:43:58.200> just<00:43:58.640> the<00:43:59.000> brackets<00:43:59.720> without" }, { "start": 2640.07, "duration": 0.0, "text": ">> Slice slice is just the brackets without" }, { "start": 2640.08, "duration": 0.0, "text": ">> Slice slice is just the brackets without anything,<00:44:00.720> and<00:44:00.880> if<00:44:01.000> you<00:44:01.120> put<00:44:01.320> in" }, { "start": 2641.71, "duration": 0.0, "text": "anything, and if you put in" }, { "start": 2641.72, "duration": 0.0, "text": "anything, and if you put in >> Oh,<00:44:01.840> you<00:44:02.040> thought<00:44:02.280> yeah,<00:44:02.480> you<00:44:02.600> thought<00:44:03.160> you" }, { "start": 2643.19, "duration": 0.0, "text": ">> Oh, you thought yeah, you thought you" }, { "start": 2643.2, "duration": 0.0, "text": ">> Oh, you thought yeah, you thought you thought<00:44:03.360> JAI,<00:44:03.880> yeah." }, { "start": 2644.03, "duration": 0.0, "text": "thought JAI, yeah." }, { "start": 2644.04, "duration": 0.0, "text": "thought JAI, yeah. >> It's<00:44:04.200> the<00:44:04.265> [laughter]<00:44:04.320> dynamic." }, { "start": 2644.99, "duration": 0.0, "text": ">> It's the [laughter] dynamic." }, { "start": 2645.0, "duration": 0.0, "text": ">> It's the [laughter] dynamic. >> Yeah,<00:44:05.120> but<00:44:05.320> is<00:44:05.440> dynamic,<00:44:05.920> actually.<00:44:06.200> Okay," }, { "start": 2646.47, "duration": 0.0, "text": ">> Yeah, but is dynamic, actually. Okay," }, { "start": 2646.48, "duration": 0.0, "text": ">> Yeah, but is dynamic, actually. Okay, yeah.<00:44:06.720> So,<00:44:07.120> if<00:44:07.240> I<00:44:07.320> did<00:44:07.560> this,<00:44:08.560> uh<00:44:08.640> I<00:44:08.680> don't<00:44:08.920> know" }, { "start": 2649.03, "duration": 0.0, "text": "yeah. So, if I did this, uh I don't know" }, { "start": 2649.04, "duration": 0.0, "text": "yeah. So, if I did this, uh I don't know if<00:44:09.160> this<00:44:09.400> is<00:44:09.560> a<00:44:09.640> good<00:44:09.760> example<00:44:10.240> in<00:44:10.320> this." }, { "start": 2651.47, "duration": 0.0, "text": "if this is a good example in this." }, { "start": 2651.48, "duration": 0.0, "text": "if this is a good example in this. Uh<00:44:11.960> oh,<00:44:12.120> like<00:44:12.400> invader<00:44:12.800> maps.<00:44:13.680> I<00:44:13.760> guess<00:44:13.920> that's" }, { "start": 2654.07, "duration": 0.0, "text": "Uh oh, like invader maps. I guess that's" }, { "start": 2654.08, "duration": 0.0, "text": "Uh oh, like invader maps. I guess that's a<00:44:14.120> dynamic<00:44:14.560> array.<00:44:14.720> So,<00:44:14.880> invader" }, { "start": 2656.87, "duration": 0.0, "text": "a dynamic array. So, invader" }, { "start": 2656.88, "duration": 0.0, "text": "a dynamic array. So, invader invader<00:44:17.200> maps.<00:44:17.480> Let<00:44:17.600> me<00:44:17.680> just<00:44:17.800> make<00:44:17.960> sure<00:44:18.080> that" }, { "start": 2658.19, "duration": 0.0, "text": "invader maps. Let me just make sure that" }, { "start": 2658.2, "duration": 0.0, "text": "invader maps. Let me just make sure that this<00:44:18.360> is<00:44:18.480> non-zero<00:44:19.120> at<00:44:19.240> some<00:44:19.440> point.<00:44:20.080> Um" }, { "start": 2662.76, "duration": 0.0, "text": "Like<00:44:22.840> if<00:44:22.960> I<00:44:23.080> go<00:44:23.320> through<00:44:23.560> here," }, { "start": 2664.71, "duration": 0.0, "text": "Like if I go through here," }, { "start": 2664.72, "duration": 0.0, "text": "Like if I go through here, is<00:44:24.760> it<00:44:24.840> going<00:44:24.960> to<00:44:25.040> load<00:44:25.280> the<00:44:25.360> maps<00:44:25.680> at<00:44:25.760> some" }, { "start": 2665.91, "duration": 0.0, "text": "is it going to load the maps at some" }, { "start": 2665.92, "duration": 0.0, "text": "is it going to load the maps at some point?" }, { "start": 2668.19, "duration": 0.0, "text": "point?" }, { "start": 2668.2, "duration": 0.0, "text": "point? Oh,<00:44:28.400> yeah,<00:44:28.640> okay.<00:44:28.880> Invader<00:44:29.160> maps<00:44:29.440> count<00:44:29.760> for" }, { "start": 2670.19, "duration": 0.0, "text": "Oh, yeah, okay. Invader maps count for" }, { "start": 2670.2, "duration": 0.0, "text": "Oh, yeah, okay. Invader maps count for Okay,<00:44:30.400> so<00:44:30.520> we'll<00:44:30.640> do" }, { "start": 2671.63, "duration": 0.0, "text": "Okay, so we'll do" }, { "start": 2671.64, "duration": 0.0, "text": "Okay, so we'll do um" }, { "start": 2672.87, "duration": 0.0, "text": "um" }, { "start": 2672.88, "duration": 0.0, "text": "um data<00:44:33.160> and<00:44:33.280> count<00:44:33.680> is<00:44:34.040> all<00:44:34.160> we<00:44:34.280> need.<00:44:34.680> So,<00:44:34.800> we" }, { "start": 2674.87, "duration": 0.0, "text": "data and count is all we need. So, we" }, { "start": 2674.88, "duration": 0.0, "text": "data and count is all we need. So, we can<00:44:35.000> go<00:44:35.120> ahead<00:44:35.280> and<00:44:35.400> do,<00:44:35.640> \"Hey," }, { "start": 2678.32, "duration": 0.0, "text": "um" }, { "start": 2679.55, "duration": 0.0, "text": "um" }, { "start": 2679.56, "duration": 0.0, "text": "um we'll<00:44:39.640> do<00:44:39.800> array" }, { "start": 2680.99, "duration": 0.0, "text": "we'll do array" }, { "start": 2681.0, "duration": 0.0, "text": "we'll do array data" }, { "start": 2682.07, "duration": 0.0, "text": "data" }, { "start": 2682.08, "duration": 0.0, "text": "data and<00:44:42.160> count." }, { "start": 2683.55, "duration": 0.0, "text": "and count." }, { "start": 2683.56, "duration": 0.0, "text": "and count. And<00:44:43.600> there<00:44:43.720> we<00:44:43.800> go." }, { "start": 2685.51, "duration": 0.0, "text": "And there we go." }, { "start": 2685.52, "duration": 0.0, "text": "And there we go. So,<00:44:45.600> now<00:44:45.760> we<00:44:45.840> just<00:44:46.040> get<00:44:46.160> the<00:44:46.240> array<00:44:46.440> view." }, { "start": 2687.39, "duration": 0.0, "text": "So, now we just get the array view." }, { "start": 2687.4, "duration": 0.0, "text": "So, now we just get the array view. Nice." }, { "start": 2687.95, "duration": 0.0, "text": "Nice." }, { "start": 2687.96, "duration": 0.0, "text": "Nice. >> So," }, { "start": 2689.35, "duration": 0.0, "text": ">> So," }, { "start": 2689.36, "duration": 0.0, "text": ">> So, Uh<00:44:49.640> so,<00:44:49.800> yeah.<00:44:50.320> That's<00:44:50.640> um" }, { "start": 2692.03, "duration": 0.0, "text": "Uh so, yeah. That's um" }, { "start": 2692.04, "duration": 0.0, "text": "Uh so, yeah. That's um You<00:44:52.080> can<00:44:52.200> see<00:44:52.360> unit<00:44:52.640> color." }, { "start": 2694.03, "duration": 0.0, "text": "You can see unit color." }, { "start": 2694.04, "duration": 0.0, "text": "You can see unit color. Uh<00:44:54.120> well,<00:44:54.440> I<00:44:54.520> don't<00:44:54.760> want<00:44:54.880> to<00:44:54.920> put<00:44:55.080> it<00:44:55.200> that" }, { "start": 2695.43, "duration": 0.0, "text": "Uh well, I don't want to put it that" }, { "start": 2695.44, "duration": 0.0, "text": "Uh well, I don't want to put it that onto<00:44:55.640> a<00:44:55.680> vector<00:44:55.960> four,<00:44:56.200> cuz<00:44:56.320> that's<00:44:56.520> a<00:44:56.600> general" }, { "start": 2697.39, "duration": 0.0, "text": "onto a vector four, cuz that's a general" }, { "start": 2697.4, "duration": 0.0, "text": "onto a vector four, cuz that's a general general<00:44:57.720> type.<00:44:58.000> But,<00:44:58.400> yeah,<00:44:58.600> anyways." }, { "start": 2699.55, "duration": 0.0, "text": "general type. But, yeah, anyways." }, { "start": 2699.56, "duration": 0.0, "text": "general type. But, yeah, anyways. Um" }, { "start": 2700.11, "duration": 0.0, "text": "Um" }, { "start": 2700.12, "duration": 0.0, "text": "Um So,<00:45:00.240> yeah,<00:45:00.320> that's<00:45:00.480> probably<00:45:00.680> a<00:45:00.720> good<00:45:00.840> place" }, { "start": 2700.99, "duration": 0.0, "text": "So, yeah, that's probably a good place" }, { "start": 2701.0, "duration": 0.0, "text": "So, yeah, that's probably a good place to<00:45:01.120> stop.<00:45:01.480> Um<00:45:01.680> I<00:45:01.760> guess<00:45:02.000> the<00:45:02.400> the" }, { "start": 2704.67, "duration": 0.0, "text": "to stop. Um I guess the the" }, { "start": 2704.68, "duration": 0.0, "text": "to stop. Um I guess the the I<00:45:04.720> can<00:45:04.840> also<00:45:05.040> do<00:45:05.200> Odin<00:45:05.720> as<00:45:05.880> well.<00:45:06.000> Since<00:45:06.200> I" }, { "start": 2706.23, "duration": 0.0, "text": "I can also do Odin as well. Since I" }, { "start": 2706.24, "duration": 0.0, "text": "I can also do Odin as well. Since I showed<00:45:06.440> Jai,<00:45:06.680> I<00:45:06.800> can<00:45:06.960> show<00:45:07.120> Odin." }, { "start": 2708.15, "duration": 0.0, "text": "showed Jai, I can show Odin." }, { "start": 2708.16, "duration": 0.0, "text": "showed Jai, I can show Odin. Here's<00:45:08.320> the<00:45:08.400> Odin<00:45:08.880> example<00:45:09.240> program." }, { "start": 2710.47, "duration": 0.0, "text": "Here's the Odin example program." }, { "start": 2710.48, "duration": 0.0, "text": "Here's the Odin example program. Um" }, { "start": 2711.35, "duration": 0.0, "text": "Um" }, { "start": 2711.36, "duration": 0.0, "text": "Um yeah.<00:45:11.680> Same<00:45:11.920> stuff.<00:45:12.840> Usual<00:45:13.520> debugging" }, { "start": 2713.87, "duration": 0.0, "text": "yeah. Same stuff. Usual debugging" }, { "start": 2713.88, "duration": 0.0, "text": "yeah. Same stuff. Usual debugging features<00:45:14.280> just<00:45:14.440> available" }, { "start": 2715.59, "duration": 0.0, "text": "features just available" }, { "start": 2715.6, "duration": 0.0, "text": "features just available for<00:45:15.680> all<00:45:15.760> these<00:45:15.920> languages.<00:45:16.360> So," }, { "start": 2717.27, "duration": 0.0, "text": "for all these languages. So," }, { "start": 2717.28, "duration": 0.0, "text": "for all these languages. So, >> Nice." }, { "start": 2717.71, "duration": 0.0, "text": ">> Nice." }, { "start": 2717.72, "duration": 0.0, "text": ">> Nice. >> Yeah." }, { "start": 2719.71, "duration": 0.0, "text": ">> Yeah." }, { "start": 2719.72, "duration": 0.0, "text": ">> Yeah. >> Nice." }, { "start": 2721.87, "duration": 0.0, "text": ">> Nice." }, { "start": 2721.88, "duration": 0.0, "text": ">> Nice. All<00:45:21.960> right." }, { "start": 2723.35, "duration": 0.0, "text": "All right." }, { "start": 2723.36, "duration": 0.0, "text": "All right. Then," }, { "start": 2724.91, "duration": 0.0, "text": "Then," }, { "start": 2724.92, "duration": 0.0, "text": "Then, we're<00:45:25.040> going<00:45:25.200> to<00:45:25.280> switch<00:45:25.600> to<00:45:25.720> source<00:45:26.120> code." }, { "start": 2726.35, "duration": 0.0, "text": "we're going to switch to source code." }, { "start": 2726.36, "duration": 0.0, "text": "we're going to switch to source code. Now,<00:45:26.640> do<00:45:26.760> you<00:45:26.880> want<00:45:27.160> a<00:45:27.240> little<00:45:27.400> bit<00:45:27.520> of<00:45:27.640> break?" }, { "start": 2728.07, "duration": 0.0, "text": "Now, do you want a little bit of break?" }, { "start": 2728.08, "duration": 0.0, "text": "Now, do you want a little bit of break? >> Sweet." }, { "start": 2728.87, "duration": 0.0, "text": ">> Sweet." }, { "start": 2728.88, "duration": 0.0, "text": ">> Sweet. >> Or" }, { "start": 2729.51, "duration": 0.0, "text": ">> Or" }, { "start": 2729.52, "duration": 0.0, "text": ">> Or >> Uh<00:45:30.000> I'm<00:45:30.200> okay<00:45:30.480> to<00:45:30.560> keep<00:45:30.720> going.<00:45:31.040> I<00:45:31.080> mean,<00:45:31.280> we" }, { "start": 2731.35, "duration": 0.0, "text": ">> Uh I'm okay to keep going. I mean, we" }, { "start": 2731.36, "duration": 0.0, "text": ">> Uh I'm okay to keep going. I mean, we can<00:45:31.480> take<00:45:31.640> a<00:45:31.680> break<00:45:31.840> if<00:45:31.960> you<00:45:32.080> if<00:45:32.200> that<00:45:32.360> helps." }, { "start": 2733.07, "duration": 0.0, "text": "can take a break if you if that helps." }, { "start": 2733.08, "duration": 0.0, "text": "can take a break if you if that helps. Um" }, { "start": 2733.87, "duration": 0.0, "text": "Um" }, { "start": 2733.88, "duration": 0.0, "text": "Um I<00:45:33.960> don't<00:45:34.160> need<00:45:34.320> it<00:45:34.520> necessarily." }, { "start": 2735.75, "duration": 0.0, "text": "I don't need it necessarily." }, { "start": 2735.76, "duration": 0.0, "text": "I don't need it necessarily. >> Uh" }, { "start": 2736.47, "duration": 0.0, "text": ">> Uh" }, { "start": 2736.48, "duration": 0.0, "text": ">> Uh if<00:45:36.720> you<00:45:37.280> can<00:45:37.480> keep<00:45:37.720> going,<00:45:38.000> then<00:45:38.160> let's<00:45:38.440> keep" }, { "start": 2738.63, "duration": 0.0, "text": "if you can keep going, then let's keep" }, { "start": 2738.64, "duration": 0.0, "text": "if you can keep going, then let's keep going." }, { "start": 2739.67, "duration": 0.0, "text": "going." }, { "start": 2739.68, "duration": 0.0, "text": "going. I'm<00:45:40.080> looking<00:45:40.480> taking<00:45:40.760> a<00:45:40.800> look<00:45:40.960> at<00:45:41.080> the<00:45:41.680> chat." }, { "start": 2742.67, "duration": 0.0, "text": "I'm looking taking a look at the chat." }, { "start": 2742.68, "duration": 0.0, "text": "I'm looking taking a look at the chat. My<00:45:43.320> idea<00:45:44.000> would<00:45:44.240> be<00:45:44.440> to<00:45:44.680> sort<00:45:44.920> of<00:45:45.160> do<00:45:45.920> first" }, { "start": 2746.27, "duration": 0.0, "text": "My idea would be to sort of do first" }, { "start": 2746.28, "duration": 0.0, "text": "My idea would be to sort of do first like<00:45:46.440> a<00:45:46.480> bit<00:45:46.640> of<00:45:46.760> a<00:45:46.840> high<00:45:47.040> level,<00:45:47.640> and<00:45:47.800> then" }, { "start": 2747.99, "duration": 0.0, "text": "like a bit of a high level, and then" }, { "start": 2748.0, "duration": 0.0, "text": "like a bit of a high level, and then we'll<00:45:48.120> pick<00:45:48.360> some<00:45:48.560> parts<00:45:48.920> where<00:45:49.080> we<00:45:49.200> can<00:45:49.320> dive" }, { "start": 2749.55, "duration": 0.0, "text": "we'll pick some parts where we can dive" }, { "start": 2749.56, "duration": 0.0, "text": "we'll pick some parts where we can dive into.<00:45:50.360> So," }, { "start": 2750.91, "duration": 0.0, "text": "into. So," }, { "start": 2750.92, "duration": 0.0, "text": "into. So, >> Okay,<00:45:51.120> sure." }, { "start": 2751.51, "duration": 0.0, "text": ">> Okay, sure." }, { "start": 2751.52, "duration": 0.0, "text": ">> Okay, sure. >> you<00:45:51.600> know.<00:45:52.160> I<00:45:52.280> think<00:45:52.520> the<00:45:52.640> first<00:45:53.720> uh<00:45:54.560> first" }, { "start": 2755.07, "duration": 0.0, "text": ">> you know. I think the first uh first" }, { "start": 2755.08, "duration": 0.0, "text": ">> you know. I think the first uh first part<00:45:55.640> could<00:45:55.920> be<00:45:56.240> a<00:45:56.360> little<00:45:56.520> bit<00:45:56.640> about<00:45:57.000> like" }, { "start": 2757.19, "duration": 0.0, "text": "part could be a little bit about like" }, { "start": 2757.2, "duration": 0.0, "text": "part could be a little bit about like high<00:45:57.360> level<00:45:57.760> structure,<00:45:58.880> what<00:45:59.120> is<00:45:59.280> where<00:45:59.640> in" }, { "start": 2759.79, "duration": 0.0, "text": "high level structure, what is where in" }, { "start": 2759.8, "duration": 0.0, "text": "high level structure, what is where in terms<00:46:00.080> of<00:46:00.720> source<00:46:01.120> code,<00:46:01.440> so<00:46:01.520> that<00:46:01.760> we<00:46:01.840> don't" }, { "start": 2762.11, "duration": 0.0, "text": "terms of source code, so that we don't" }, { "start": 2762.12, "duration": 0.0, "text": "terms of source code, so that we don't get<00:46:02.680> too<00:46:02.960> too<00:46:03.200> lost<00:46:04.160> immediately." }, { "start": 2764.75, "duration": 0.0, "text": "get too too lost immediately." }, { "start": 2764.76, "duration": 0.0, "text": "get too too lost immediately. >> Got<00:46:04.800> it." }, { "start": 2765.79, "duration": 0.0, "text": ">> Got it." }, { "start": 2765.8, "duration": 0.0, "text": ">> Got it. Okay." }, { "start": 2767.11, "duration": 0.0, "text": "Okay." }, { "start": 2767.12, "duration": 0.0, "text": "Okay. Um" }, { "start": 2769.31, "duration": 0.0, "text": "Um" }, { "start": 2769.32, "duration": 0.0, "text": "Um >> Oh,<00:46:10.080> there<00:46:10.240> was<00:46:10.480> there<00:46:10.640> was<00:46:10.840> one<00:46:11.160> there<00:46:11.320> was" }, { "start": 2771.43, "duration": 0.0, "text": ">> Oh, there was there was one there was" }, { "start": 2771.44, "duration": 0.0, "text": ">> Oh, there was there was one there was one<00:46:11.640> question<00:46:12.120> that<00:46:12.240> was<00:46:12.440> repeated<00:46:13.320> a<00:46:13.360> lot<00:46:13.640> of" }, { "start": 2773.75, "duration": 0.0, "text": "one question that was repeated a lot of" }, { "start": 2773.76, "duration": 0.0, "text": "one question that was repeated a lot of times<00:46:14.120> in<00:46:14.200> the<00:46:14.320> chat.<00:46:15.160> When<00:46:15.640> uh<00:46:15.920> the<00:46:16.080> debugger" }, { "start": 2776.55, "duration": 0.0, "text": "times in the chat. When uh the debugger" }, { "start": 2776.56, "duration": 0.0, "text": "times in the chat. When uh the debugger will<00:46:16.720> become<00:46:17.240> a<00:46:17.360> code<00:46:17.720> editor?" }, { "start": 2779.841, "duration": 0.0, "text": "will become a code editor?" }, { "start": 2779.851, "duration": 0.0, "text": "will become a code editor? >> [laughter]" }, { "start": 2780.55, "duration": 0.0, "text": ">> [laughter]" }, { "start": 2780.56, "duration": 0.0, "text": ">> [laughter] >> Uh<00:46:20.960> so,<00:46:21.640> that's<00:46:21.920> like<00:46:22.080> very<00:46:22.360> long<00:46:22.640> term.<00:46:23.320> If<00:46:23.480> we" }, { "start": 2783.59, "duration": 0.0, "text": ">> Uh so, that's like very long term. If we" }, { "start": 2783.6, "duration": 0.0, "text": ">> Uh so, that's like very long term. If we ever<00:46:23.760> decide<00:46:24.080> to<00:46:24.160> do<00:46:24.320> that,<00:46:24.640> it's<00:46:24.760> just<00:46:24.960> that" }, { "start": 2785.35, "duration": 0.0, "text": "ever decide to do that, it's just that" }, { "start": 2785.36, "duration": 0.0, "text": "ever decide to do that, it's just that there's<00:46:25.520> so<00:46:25.680> much<00:46:25.960> debugging<00:46:26.400> stuff<00:46:26.640> we<00:46:26.720> need" }, { "start": 2786.87, "duration": 0.0, "text": "there's so much debugging stuff we need" }, { "start": 2786.88, "duration": 0.0, "text": "there's so much debugging stuff we need to<00:46:26.960> do<00:46:27.120> first<00:46:27.560> that<00:46:28.040> we're<00:46:28.360> going<00:46:28.520> to<00:46:28.920> we're" }, { "start": 2789.03, "duration": 0.0, "text": "to do first that we're going to we're" }, { "start": 2789.04, "duration": 0.0, "text": "to do first that we're going to we're focusing<00:46:29.360> on<00:46:29.440> debugger<00:46:29.720> stuff<00:46:30.000> first<00:46:30.200> because" }, { "start": 2790.47, "duration": 0.0, "text": "focusing on debugger stuff first because" }, { "start": 2790.48, "duration": 0.0, "text": "focusing on debugger stuff first because it's<00:46:30.640> more<00:46:30.840> important.<00:46:31.680> Like<00:46:31.840> there<00:46:31.960> are" }, { "start": 2792.03, "duration": 0.0, "text": "it's more important. Like there are" }, { "start": 2792.04, "duration": 0.0, "text": "it's more important. Like there are plenty<00:46:32.320> of<00:46:32.400> editors<00:46:32.800> available<00:46:33.280> on<00:46:33.400> Linux," }, { "start": 2793.79, "duration": 0.0, "text": "plenty of editors available on Linux," }, { "start": 2793.8, "duration": 0.0, "text": "plenty of editors available on Linux, right?<00:46:34.080> But<00:46:34.280> there's<00:46:34.520> really<00:46:34.720> not<00:46:34.880> that<00:46:35.040> many" }, { "start": 2795.19, "duration": 0.0, "text": "right? But there's really not that many" }, { "start": 2795.2, "duration": 0.0, "text": "right? But there's really not that many graphical<00:46:35.880> like<00:46:36.120> good<00:46:36.360> graphical<00:46:36.720> editors<00:46:37.080> on" }, { "start": 2797.19, "duration": 0.0, "text": "graphical like good graphical editors on" }, { "start": 2797.2, "duration": 0.0, "text": "graphical like good graphical editors on Linux.<00:46:38.040> And<00:46:38.160> so,<00:46:38.280> the<00:46:38.400> debugger's<00:46:38.920> really<00:46:39.120> the" }, { "start": 2799.23, "duration": 0.0, "text": "Linux. And so, the debugger's really the" }, { "start": 2799.24, "duration": 0.0, "text": "Linux. And so, the debugger's really the high<00:46:39.440> value<00:46:39.760> thing<00:46:39.880> we<00:46:40.000> want<00:46:40.120> to<00:46:40.200> provide" }, { "start": 2800.99, "duration": 0.0, "text": "high value thing we want to provide" }, { "start": 2801.0, "duration": 0.0, "text": "high value thing we want to provide first.<00:46:41.480> I<00:46:41.560> think<00:46:41.800> someday<00:46:42.200> it'll<00:46:42.400> make<00:46:42.560> a" }, { "start": 2802.63, "duration": 0.0, "text": "first. I think someday it'll make a" }, { "start": 2802.64, "duration": 0.0, "text": "first. I think someday it'll make a whole<00:46:42.840> lot<00:46:43.000> of<00:46:43.080> sense<00:46:43.320> to<00:46:43.440> put<00:46:43.640> editing" }, { "start": 2803.95, "duration": 0.0, "text": "whole lot of sense to put editing" }, { "start": 2803.96, "duration": 0.0, "text": "whole lot of sense to put editing functionality<00:46:44.520> inside<00:46:44.960> because<00:46:45.560> it's<00:46:45.640> not" }, { "start": 2805.83, "duration": 0.0, "text": "functionality inside because it's not" }, { "start": 2805.84, "duration": 0.0, "text": "functionality inside because it's not even<00:46:46.360> it's<00:46:46.480> not<00:46:46.640> even<00:46:46.800> for<00:46:47.080> the<00:46:47.280> purposes<00:46:47.680> of" }, { "start": 2807.75, "duration": 0.0, "text": "even it's not even for the purposes of" }, { "start": 2807.76, "duration": 0.0, "text": "even it's not even for the purposes of being<00:46:47.960> a<00:46:48.000> code<00:46:48.200> editor.<00:46:49.000> It's<00:46:49.160> really<00:46:49.360> because" }, { "start": 2809.83, "duration": 0.0, "text": "being a code editor. It's really because" }, { "start": 2809.84, "duration": 0.0, "text": "being a code editor. It's really because with<00:46:50.120> multi-line<00:46:50.720> string<00:46:51.000> visualization,<00:46:51.960> so" }, { "start": 2812.11, "duration": 0.0, "text": "with multi-line string visualization, so" }, { "start": 2812.12, "duration": 0.0, "text": "with multi-line string visualization, so if<00:46:52.240> I,<00:46:52.360> you<00:46:52.480> know,<00:46:52.680> if<00:46:52.840> I<00:46:52.880> go<00:46:53.000> back<00:46:53.200> to<00:46:53.280> those" }, { "start": 2813.43, "duration": 0.0, "text": "if I, you know, if I go back to those" }, { "start": 2813.44, "duration": 0.0, "text": "if I, you know, if I go back to those examples<00:46:53.840> where<00:46:53.920> I<00:46:53.960> had<00:46:54.080> that<00:46:54.240> long<00:46:54.520> string" }, { "start": 2814.83, "duration": 0.0, "text": "examples where I had that long string" }, { "start": 2814.84, "duration": 0.0, "text": "examples where I had that long string that<00:46:55.000> I<00:46:55.040> showed<00:46:55.760> in<00:46:55.880> the<00:46:55.960> text<00:46:56.160> visualizer" }, { "start": 2816.67, "duration": 0.0, "text": "that I showed in the text visualizer" }, { "start": 2816.68, "duration": 0.0, "text": "that I showed in the text visualizer just<00:46:56.840> like<00:46:57.040> the<00:46:57.280> just<00:46:57.440> like<00:46:57.520> the<00:46:57.600> source<00:46:57.800> code." }, { "start": 2819.03, "duration": 0.0, "text": "just like the just like the source code." }, { "start": 2819.04, "duration": 0.0, "text": "just like the just like the source code. If<00:46:59.160> you're<00:46:59.320> working<00:46:59.640> with<00:46:59.760> a<00:46:59.800> lot<00:47:00.000> of<00:47:00.040> text" }, { "start": 2820.47, "duration": 0.0, "text": "If you're working with a lot of text" }, { "start": 2820.48, "duration": 0.0, "text": "If you're working with a lot of text data<00:47:01.280> and<00:47:01.400> you're<00:47:01.520> debugging,<00:47:01.960> like<00:47:02.080> we<00:47:02.200> can" }, { "start": 2822.31, "duration": 0.0, "text": "data and you're debugging, like we can" }, { "start": 2822.32, "duration": 0.0, "text": "data and you're debugging, like we can edit<00:47:02.520> things<00:47:02.720> in<00:47:02.800> the<00:47:02.840> memory<00:47:03.200> view,<00:47:03.680> we<00:47:03.800> can" }, { "start": 2823.91, "duration": 0.0, "text": "edit things in the memory view, we can" }, { "start": 2823.92, "duration": 0.0, "text": "edit things in the memory view, we can edit<00:47:04.200> the<00:47:04.320> colors,<00:47:04.840> we<00:47:04.960> can<00:47:05.080> edit<00:47:05.400> like<00:47:06.000> we<00:47:06.120> can" }, { "start": 2826.23, "duration": 0.0, "text": "edit the colors, we can edit like we can" }, { "start": 2826.24, "duration": 0.0, "text": "edit the colors, we can edit like we can edit<00:47:06.400> values<00:47:06.760> inside<00:47:06.960> the<00:47:07.040> watch<00:47:07.240> window." }, { "start": 2827.83, "duration": 0.0, "text": "edit values inside the watch window." }, { "start": 2827.84, "duration": 0.0, "text": "edit values inside the watch window. It's<00:47:08.000> like<00:47:08.200> really<00:47:08.440> all<00:47:08.560> these<00:47:08.720> visualizers" }, { "start": 2829.27, "duration": 0.0, "text": "It's like really all these visualizers" }, { "start": 2829.28, "duration": 0.0, "text": "It's like really all these visualizers should<00:47:09.480> also<00:47:09.680> have<00:47:09.840> editing<00:47:10.120> functionality" }, { "start": 2830.79, "duration": 0.0, "text": "should also have editing functionality" }, { "start": 2830.8, "duration": 0.0, "text": "should also have editing functionality at<00:47:10.960> the<00:47:11.080> limit.<00:47:11.440> So,<00:47:11.560> I<00:47:11.640> think<00:47:11.840> that<00:47:12.120> should" }, { "start": 2832.31, "duration": 0.0, "text": "at the limit. So, I think that should" }, { "start": 2832.32, "duration": 0.0, "text": "at the limit. So, I think that should apply<00:47:12.600> also<00:47:12.840> to<00:47:12.960> the<00:47:13.040> text<00:47:13.280> visualizer,<00:47:14.160> which" }, { "start": 2834.39, "duration": 0.0, "text": "apply also to the text visualizer, which" }, { "start": 2834.4, "duration": 0.0, "text": "apply also to the text visualizer, which means<00:47:14.800> it<00:47:14.960> necessarily<00:47:15.560> also<00:47:15.800> has<00:47:15.960> to<00:47:16.080> apply" }, { "start": 2836.95, "duration": 0.0, "text": "means it necessarily also has to apply" }, { "start": 2836.96, "duration": 0.0, "text": "means it necessarily also has to apply to<00:47:17.240> source<00:47:17.560> code<00:47:17.800> views,<00:47:18.480> right?<00:47:18.800> So,<00:47:19.080> it's" }, { "start": 2839.43, "duration": 0.0, "text": "to source code views, right? So, it's" }, { "start": 2839.44, "duration": 0.0, "text": "to source code views, right? So, it's it's<00:47:19.880> I<00:47:19.960> think<00:47:20.160> eventually<00:47:20.600> it'll<00:47:20.760> become" }, { "start": 2841.03, "duration": 0.0, "text": "it's I think eventually it'll become" }, { "start": 2841.04, "duration": 0.0, "text": "it's I think eventually it'll become that.<00:47:21.760> Um" }, { "start": 2842.51, "duration": 0.0, "text": "that. Um" }, { "start": 2842.52, "duration": 0.0, "text": "that. Um but<00:47:22.640> it's<00:47:22.760> just<00:47:22.920> not<00:47:23.360> the<00:47:23.440> high<00:47:23.680> priority" }, { "start": 2844.27, "duration": 0.0, "text": "but it's just not the high priority" }, { "start": 2844.28, "duration": 0.0, "text": "but it's just not the high priority right<00:47:24.440> now<00:47:24.560> cuz<00:47:24.760> obviously<00:47:25.040> we<00:47:25.120> have<00:47:25.240> the" }, { "start": 2845.31, "duration": 0.0, "text": "right now cuz obviously we have the" }, { "start": 2845.32, "duration": 0.0, "text": "right now cuz obviously we have the porting<00:47:25.720> stuff<00:47:25.960> to<00:47:26.040> do<00:47:26.240> before<00:47:26.440> we<00:47:26.520> get<00:47:26.640> to<00:47:26.760> all" }, { "start": 2846.95, "duration": 0.0, "text": "porting stuff to do before we get to all" }, { "start": 2846.96, "duration": 0.0, "text": "porting stuff to do before we get to all the<00:47:27.040> fancy<00:47:27.440> stuff.<00:47:27.800> We<00:47:27.880> have<00:47:28.000> porting<00:47:28.400> to<00:47:28.520> do" }, { "start": 2849.11, "duration": 0.0, "text": "the fancy stuff. We have porting to do" }, { "start": 2849.12, "duration": 0.0, "text": "the fancy stuff. We have porting to do both<00:47:29.320> to<00:47:29.560> Linux<00:47:29.920> but<00:47:30.040> also<00:47:30.400> to<00:47:30.600> from<00:47:30.800> x64<00:47:31.440> to" }, { "start": 2851.59, "duration": 0.0, "text": "both to Linux but also to from x64 to" }, { "start": 2851.6, "duration": 0.0, "text": "both to Linux but also to from x64 to arm,<00:47:32.520> um<00:47:32.880> and<00:47:32.960> then<00:47:33.080> probably<00:47:33.520> like<00:47:33.720> risk<00:47:34.000> five" }, { "start": 2854.39, "duration": 0.0, "text": "arm, um and then probably like risk five" }, { "start": 2854.4, "duration": 0.0, "text": "arm, um and then probably like risk five or<00:47:34.480> whatever,<00:47:34.960> and<00:47:35.080> then<00:47:35.360> like<00:47:35.840> we<00:47:35.920> just<00:47:36.080> want" }, { "start": 2856.19, "duration": 0.0, "text": "or whatever, and then like we just want" }, { "start": 2856.2, "duration": 0.0, "text": "or whatever, and then like we just want to<00:47:36.280> start<00:47:36.480> doing<00:47:36.720> all<00:47:36.840> the<00:47:37.080> we<00:47:37.200> want<00:47:37.320> to<00:47:37.400> cover" }, { "start": 2857.63, "duration": 0.0, "text": "to start doing all the we want to cover" }, { "start": 2857.64, "duration": 0.0, "text": "to start doing all the we want to cover those<00:47:37.880> bases<00:47:38.320> first<00:47:38.800> so<00:47:38.920> that<00:47:39.080> we<00:47:39.160> don't<00:47:39.480> get" }, { "start": 2859.67, "duration": 0.0, "text": "those bases first so that we don't get" }, { "start": 2859.68, "duration": 0.0, "text": "those bases first so that we don't get ahead<00:47:39.840> of<00:47:39.960> ourselves,<00:47:40.960> um<00:47:41.280> and<00:47:41.400> build<00:47:42.080> all" }, { "start": 2862.23, "duration": 0.0, "text": "ahead of ourselves, um and build all" }, { "start": 2862.24, "duration": 0.0, "text": "ahead of ourselves, um and build all those<00:47:42.440> kinds<00:47:42.680> of<00:47:42.760> crazy<00:47:43.040> features<00:47:43.400> on<00:47:43.520> a" }, { "start": 2863.59, "duration": 0.0, "text": "those kinds of crazy features on a" }, { "start": 2863.6, "duration": 0.0, "text": "those kinds of crazy features on a really<00:47:43.960> unstable<00:47:44.440> foundation.<00:47:44.960> So,<00:47:45.040> we<00:47:45.160> want" }, { "start": 2865.27, "duration": 0.0, "text": "really unstable foundation. So, we want" }, { "start": 2865.28, "duration": 0.0, "text": "really unstable foundation. So, we want to<00:47:45.360> make<00:47:45.440> sure<00:47:45.560> to<00:47:45.640> do<00:47:45.760> it<00:47:45.920> really<00:47:46.440> really<00:47:46.800> uh" }, { "start": 2867.51, "duration": 0.0, "text": "to make sure to do it really really uh" }, { "start": 2867.52, "duration": 0.0, "text": "to make sure to do it really really uh um" }, { "start": 2868.91, "duration": 0.0, "text": "um" }, { "start": 2868.92, "duration": 0.0, "text": "um really<00:47:49.120> appropriately,<00:47:50.080> I<00:47:50.160> guess<00:47:50.320> is<00:47:50.440> what<00:47:50.560> I" }, { "start": 2870.59, "duration": 0.0, "text": "really appropriately, I guess is what I" }, { "start": 2870.6, "duration": 0.0, "text": "really appropriately, I guess is what I would<00:47:50.720> say.<00:47:51.200> Um<00:47:51.520> so,<00:47:51.840> not<00:47:52.160> anytime<00:47:52.560> soon,<00:47:53.080> but" }, { "start": 2873.43, "duration": 0.0, "text": "would say. Um so, not anytime soon, but" }, { "start": 2873.44, "duration": 0.0, "text": "would say. Um so, not anytime soon, but there<00:47:53.600> are<00:47:53.800> a<00:47:53.840> lot<00:47:54.040> of<00:47:54.120> features<00:47:54.480> in<00:47:54.560> the<00:47:54.640> rad" }, { "start": 2874.79, "duration": 0.0, "text": "there are a lot of features in the rad" }, { "start": 2874.8, "duration": 0.0, "text": "there are a lot of features in the rad debugger<00:47:55.120> to<00:47:56.000> hook<00:47:56.200> up<00:47:56.360> to<00:47:56.480> an<00:47:56.600> editor," }, { "start": 2877.95, "duration": 0.0, "text": "debugger to hook up to an editor," }, { "start": 2877.96, "duration": 0.0, "text": "debugger to hook up to an editor, which<00:47:58.120> I<00:47:58.160> could<00:47:58.320> talk<00:47:58.480> about,<00:47:58.680> too,<00:47:58.840> but<00:47:59.640> um" }, { "start": 2880.39, "duration": 0.0, "text": "which I could talk about, too, but um" }, { "start": 2880.4, "duration": 0.0, "text": "which I could talk about, too, but um anyways." }, { "start": 2881.368, "duration": 0.0, "text": "anyways." }, { "start": 2881.378, "duration": 0.0, "text": "anyways. >> [music]" }, { "start": 2893.823, "duration": 0.0, "text": "[music]" }, { "start": 2899.718, "duration": 0.0, "text": "[music]" } ], "plain": "For<00:00:00.520> everybody<00:00:00.960> who<00:00:01.120> is<00:00:01.240> joining,<00:00:02.000> we<00:00:02.200> are\nFor everybody who is joining, we are\nFor everybody who is joining, we are gathered<00:00:02.760> here<00:00:03.000> today<00:00:03.760> for<00:00:04.040> Ryan<00:00:04.800> to<00:00:04.960> show<00:00:05.200> us\ngathered here today for Ryan to show us\ngathered here today for Ryan to show us radare2<00:00:06.120> debugger<00:00:06.440> code<00:00:06.720> base.\nradare2 debugger code base.\nradare2 debugger code base. Hello<00:00:08.200> Ryan,<00:00:08.760> how<00:00:08.880> are<00:00:08.960> you<00:00:09.000> doing?\nHello Ryan, how are you doing?\nHello Ryan, how are you doing? >> Hello.<00:00:10.400> Good,<00:00:10.640> how<00:00:10.760> are<00:00:10.840> you?\n>> Hello. Good, how are you?\n>> Hello. Good, how are you? >> Great.\n>> Great.\n>> Great. And<00:00:13.720> after<00:00:13.960> this<00:00:14.160> a<00:00:14.200> little<00:00:14.400> bit<00:00:14.600> awkward\nAnd after this a little bit awkward\nAnd after this a little bit awkward introduction<00:00:15.920> interchange,\nintroduction interchange,\nintroduction interchange, uh<00:00:17.600> Ryan<00:00:18.600> will<00:00:18.840> first<00:00:19.280> start<00:00:19.760> with<00:00:19.960> showing<00:00:20.280> us\nuh Ryan will first start with showing us\nuh Ryan will first start with showing us how<00:00:20.880> radare2<00:00:21.200> debugger<00:00:21.520> works<00:00:22.000> in<00:00:22.200> general<00:00:22.960> in\nhow radare2 debugger works in general in\nhow radare2 debugger works in general in terms<00:00:23.440> of<00:00:23.640> what's<00:00:23.800> the<00:00:24.160> product<00:00:25.240> how<00:00:25.480> the\nterms of what's the product how the\nterms of what's the product how the users<00:00:26.280> could<00:00:26.640> use<00:00:27.000> radare2<00:00:27.320> debugger<00:00:28.040> and\nusers could use radare2 debugger and\nusers could use radare2 debugger and then<00:00:28.320> we're<00:00:28.400> going<00:00:28.520> to<00:00:28.600> dive<00:00:28.840> in<00:00:29.000> into<00:00:29.400> source\nthen we're going to dive in into source\nthen we're going to dive in into source code.\ncode.\ncode. >> So,<00:00:30.960> unfortunately<00:00:31.440> I<00:00:31.480> can't<00:00:31.720> show<00:00:32.240> what<00:00:32.400> it's\n>> So, unfortunately I can't show what it's\n>> So, unfortunately I can't show what it's like<00:00:32.759> to<00:00:32.960> get<00:00:33.360> the<00:00:33.440> debugger\nlike to get the debugger\nlike to get the debugger um<00:00:35.400> because<00:00:36.080> I<00:00:36.280> can<00:00:36.440> only<00:00:36.680> share<00:00:37.040> share<00:00:37.320> the\num because I can only share share the\num because I can only share share the debugger<00:00:37.720> itself,<00:00:38.080> but<00:00:38.200> I<00:00:38.240> mean<00:00:38.400> it's<00:00:38.520> very\ndebugger itself, but I mean it's very\ndebugger itself, but I mean it's very straightforward.<00:00:39.320> Like<00:00:39.480> you<00:00:39.600> go<00:00:39.800> to<00:00:39.960> the\nstraightforward. Like you go to the\nstraightforward. Like you go to the debugger<00:00:41.160> GitHub<00:00:41.480> page,<00:00:42.120> you<00:00:42.240> click<00:00:42.480> on<00:00:42.600> the\ndebugger GitHub page, you click on the\ndebugger GitHub page, you click on the releases<00:00:43.320> section,<00:00:44.080> and<00:00:44.200> then<00:00:44.280> you<00:00:44.480> get\nreleases section, and then you get\nreleases section, and then you get radare2<00:00:45.400> .exe,<00:00:46.200> and<00:00:46.280> that's<00:00:46.480> it.<00:00:46.640> And<00:00:46.720> then\nradare2 .exe, and that's it. And then\nradare2 .exe, and that's it. And then you<00:00:46.920> run<00:00:47.080> that.<00:00:47.520> And<00:00:47.600> then<00:00:47.720> this<00:00:47.880> is<00:00:48.000> what<00:00:48.120> will\nyou run that. And then this is what will\nyou run that. And then this is what will pop<00:00:48.400> up<00:00:48.760> or<00:00:48.840> something<00:00:49.120> like<00:00:49.280> this.\npop up or something like this.\npop up or something like this. Um\nUm\nUm so<00:00:53.055> [clears throat]\nso [clears throat]\nso [clears throat] anyways,<00:00:54.600> if<00:00:54.720> you<00:00:54.880> open<00:00:55.120> the<00:00:55.200> program<00:00:55.560> like\nanyways, if you open the program like\nanyways, if you open the program like this,<00:00:55.960> so<00:00:56.120> there's<00:00:56.400> there's<00:00:56.640> one<00:00:56.840> thing<00:00:57.000> you\nthis, so there's there's one thing you\nthis, so there's there's one thing you can<00:00:57.240> do<00:00:57.640> and<00:00:57.760> because<00:00:58.040> I<00:00:58.120> can't<00:00:58.760> because<00:00:59.000> I\ncan do and because I can't because I\ncan do and because I can't because I can't<00:00:59.360> share<00:00:59.720> my<00:01:00.560> my<00:01:00.720> screen,<00:01:01.000> I<00:01:01.040> can't<00:01:01.320> show\ncan't share my my screen, I can't show\ncan't share my my screen, I can't show what<00:01:01.680> the<00:01:01.760> command<00:01:02.120> line<00:01:02.760> usage<00:01:03.160> looks<00:01:03.320> like.\nwhat the command line usage looks like.\nwhat the command line usage looks like. But<00:01:04.280> basically<00:01:04.680> there's<00:01:04.879> one<00:01:05.080> thing<00:01:05.239> you<00:01:05.320> can\nBut basically there's one thing you can\nBut basically there's one thing you can do,<00:01:06.160> let<00:01:06.280> me<00:01:06.320> just<00:01:06.480> open<00:01:06.640> a<00:01:06.680> watch<00:01:06.960> window<00:01:07.200> and\ndo, let me just open a watch window and\ndo, let me just open a watch window and then<00:01:07.400> I<00:01:07.440> can<00:01:07.960> uh\nthen I can uh\nthen I can uh put<00:01:08.680> a<00:01:08.720> little<00:01:08.880> string<00:01:09.120> in<00:01:09.200> here.<00:01:09.400> So,<00:01:10.000> um\nput a little string in here. So, um\nput a little string in here. So, um actually<00:01:10.880> let<00:01:11.000> me<00:01:11.160> unload<00:01:11.600> a<00:01:11.640> bunch<00:01:11.840> of<00:01:11.920> debug\nactually let me unload a bunch of debug\nactually let me unload a bunch of debug info<00:01:12.920> that<00:01:13.000> I<00:01:13.040> don't<00:01:13.240> need<00:01:13.360> loaded<00:01:13.640> right<00:01:13.800> now.\ninfo that I don't need loaded right now.\ninfo that I don't need loaded right now. So,\nSo,\nSo, >> [clears throat]\n>> [clears throat]\n>> [clears throat] >> on<00:01:15.960> command<00:01:16.240> line<00:01:16.440> what<00:01:16.560> you<00:01:16.640> can<00:01:16.720> do<00:01:16.920> is<00:01:17.000> like\n>> on command line what you can do is like\n>> on command line what you can do is like you<00:01:17.440> you<00:01:17.520> can<00:01:17.640> run<00:01:18.480> radare2<00:01:19.160> and<00:01:19.280> then<00:01:19.920> um<00:01:20.360> so\nyou you can run radare2 and then um so\nyou you can run radare2 and then um so if<00:01:20.680> you're<00:01:20.800> running<00:01:21.120> a<00:01:21.200> program<00:01:21.760> that<00:01:21.920> you're\nif you're running a program that you're\nif you're running a program that you're that<00:01:23.000> you're<00:01:23.360> actively<00:01:23.720> developing,<00:01:24.200> you\nthat you're actively developing, you\nthat you're actively developing, you might<00:01:24.520> run<00:01:24.720> something<00:01:25.000> like<00:01:25.200> foo.exe.\nmight run something like foo.exe.\nmight run something like foo.exe. Um<00:01:28.040> and<00:01:28.160> then<00:01:28.280> you<00:01:28.360> might<00:01:28.600> say<00:01:28.800> like<00:01:29.080> {dash}<00:01:29.720> a\nUm and then you might say like {dash} a\nUm and then you might say like {dash} a {dash}<00:01:30.320> b<00:01:31.200> uh\n{dash} b uh\n{dash} b uh {dash}<00:01:32.600> some<00:01:33.000> other<00:01:33.360> option<00:01:34.480> equals\n{dash} some other option equals\n{dash} some other option equals whatever,<00:01:35.560> like<00:01:35.680> something<00:01:35.880> like<00:01:36.000> this.\nwhatever, like something like this.\nwhatever, like something like this. Whatever<00:01:36.360> your<00:01:36.440> command<00:01:36.720> line<00:01:36.880> arguments<00:01:37.240> are\nWhatever your command line arguments are\nWhatever your command line arguments are if<00:01:37.480> you<00:01:37.600> have<00:01:37.760> them.\nif you have them.\nif you have them. To<00:01:39.360> run<00:01:39.520> this<00:01:39.920> within<00:01:40.200> the<00:01:40.280> context<00:01:40.640> of<00:01:40.720> the\nTo run this within the context of the\nTo run this within the context of the debugger,<00:01:41.200> all<00:01:41.360> you<00:01:41.440> have<00:01:41.560> to<00:01:41.640> do<00:01:42.000> is<00:01:42.280> prefix\ndebugger, all you have to do is prefix\ndebugger, all you have to do is prefix that<00:01:42.760> with<00:01:42.920> radare2\nthat with radare2\nthat with radare2 as<00:01:43.960> long<00:01:44.160> as<00:01:44.280> you<00:01:44.320> can<00:01:44.480> access<00:01:45.360> this<00:01:45.600> in<00:01:45.720> your\nas long as you can access this in your\nas long as you can access this in your path.<00:01:46.120> Like<00:01:46.240> you<00:01:46.320> put<00:01:46.480> it,<00:01:46.920> you<00:01:47.000> know,<00:01:47.600> when\npath. Like you put it, you know, when\npath. Like you put it, you know, when you<00:01:48.080> get<00:01:48.280> the<00:01:48.360> executable,<00:01:48.840> you<00:01:48.920> put<00:01:49.080> it\nyou get the executable, you put it\nyou get the executable, you put it wherever<00:01:49.360> you<00:01:49.400> can<00:01:49.520> find<00:01:49.760> it<00:01:49.840> in<00:01:49.880> your<00:01:50.000> path<00:01:50.280> if\nwherever you can find it in your path if\nwherever you can find it in your path if you<00:01:50.480> want<00:01:50.600> to<00:01:50.680> run<00:01:50.760> it<00:01:50.840> from<00:01:50.960> command<00:01:51.280> line.\nyou want to run it from command line.\nyou want to run it from command line. Um\nUm\nUm and<00:01:54.040> then<00:01:54.120> if<00:01:54.240> you<00:01:54.400> open<00:01:54.920> if<00:01:55.000> If<00:01:55.080> run<00:01:55.280> this,\nand then if you open if If run this,\nand then if you open if If run this, it'll<00:01:56.920> open<00:01:57.160> the<00:01:57.240> debugger.\nit'll open the debugger.\nit'll open the debugger. And<00:01:58.720> what<00:01:58.840> it'll<00:01:59.040> do<00:01:59.240> is<00:01:59.360> it'll<00:01:59.520> pre-fill\nAnd what it'll do is it'll pre-fill\nAnd what it'll do is it'll pre-fill um\num\num it'll<00:02:02.280> create<00:02:02.520> a<00:02:02.560> target,<00:02:03.040> a<00:02:03.080> temporary\nit'll create a target, a temporary\nit'll create a target, a temporary target<00:02:03.880> for<00:02:04.360> for<00:02:04.680> the<00:02:05.240> executable<00:02:05.760> you<00:02:05.840> just\ntarget for for the executable you just\ntarget for for the executable you just passed.\npassed.\npassed. So,<00:02:07.720> targets<00:02:08.080> are<00:02:08.160> basically\nSo, targets are basically\nSo, targets are basically um<00:02:09.960> how<00:02:10.160> the<00:02:10.280> debugger<00:02:10.640> knows<00:02:11.760> uh<00:02:12.000> how<00:02:12.320> to\num how the debugger knows uh how to\num how the debugger knows uh how to launch<00:02:13.080> an<00:02:13.200> executable.<00:02:14.240> Um\nlaunch an executable. Um\nlaunch an executable. Um so,<00:02:15.160> I've<00:02:15.280> got<00:02:15.400> a<00:02:15.440> bunch<00:02:15.640> of<00:02:15.720> options<00:02:16.080> here.\nso, I've got a bunch of options here.\nso, I've got a bunch of options here. I've<00:02:16.880> got<00:02:17.080> this<00:02:17.360> for<00:02:17.480> example,<00:02:17.840> this<00:02:18.000> mule\nI've got this for example, this mule\nI've got this for example, this mule main.<00:02:18.640> This<00:02:18.800> is<00:02:18.959> what<00:02:19.280> something<00:02:19.560> we<00:02:19.640> use<00:02:19.800> for\nmain. This is what something we use for\nmain. This is what something we use for testing<00:02:20.240> in<00:02:20.360> the<00:02:20.400> debugger\ntesting in the debugger\ntesting in the debugger um<00:02:21.800> project.<00:02:22.959> And<00:02:23.320> you<00:02:23.400> can<00:02:23.520> see<00:02:23.600> it's<00:02:23.720> got<00:02:23.840> a\num project. And you can see it's got a\num project. And you can see it's got a bunch<00:02:24.040> of<00:02:24.120> options<00:02:24.480> here.<00:02:25.080> Um\nbunch of options here. Um\nbunch of options here. Um label<00:02:26.680> is<00:02:27.080> uh\nlabel is uh\nlabel is uh not<00:02:27.920> super<00:02:28.160> important.<00:02:28.440> It's<00:02:28.640> it's<00:02:29.360> um\nnot super important. It's it's um\nnot super important. It's it's um it's<00:02:30.200> just<00:02:30.320> something<00:02:30.520> you<00:02:30.600> can<00:02:30.720> tag<00:02:31.360> this\nit's just something you can tag this\nit's just something you can tag this target<00:02:32.200> with.<00:02:32.440> But\ntarget with. But\ntarget with. But um<00:02:34.000> you<00:02:34.120> supply<00:02:34.400> the<00:02:34.520> executable<00:02:35.000> path.<00:02:35.520> You\num you supply the executable path. You\num you supply the executable path. You can<00:02:35.720> put<00:02:35.840> in<00:02:36.000> arguments<00:02:36.480> here.<00:02:36.720> So,<00:02:36.800> you<00:02:36.840> can\ncan put in arguments here. So, you can\ncan put in arguments here. So, you can do<00:02:37.040> like<00:02:37.200> {dash}foo<00:02:37.680> {dash}bar<00:02:38.240> whatever,\ndo like {dash}foo {dash}bar whatever,\ndo like {dash}foo {dash}bar whatever, whatever<00:02:39.040> you<00:02:39.120> want<00:02:39.280> it<00:02:39.360> to<00:02:39.440> do.<00:02:39.959> And<00:02:40.040> the\nwhatever you want it to do. And the\nwhatever you want it to do. And the arguments<00:02:40.480> you<00:02:40.560> put<00:02:40.720> those<00:02:40.920> here.\narguments you put those here.\narguments you put those here. Whatever<00:02:42.480> working<00:02:42.840> directory<00:02:43.240> you<00:02:43.360> want<00:02:43.560> it\nWhatever working directory you want it\nWhatever working directory you want it to<00:02:43.760> start<00:02:44.120> the<00:02:44.240> executable<00:02:45.160> like<00:02:45.360> within<00:02:45.600> the\nto start the executable like within the\nto start the executable like within the context<00:02:46.160> of.<00:02:46.800> And<00:02:46.880> then<00:02:47.000> you<00:02:47.080> can<00:02:47.160> also\ncontext of. And then you can also\ncontext of. And then you can also specify<00:02:47.680> things<00:02:47.920> like<00:02:48.040> a<00:02:48.120> custom<00:02:48.520> entry\nspecify things like a custom entry\nspecify things like a custom entry point.<00:02:49.800> Um<00:02:50.560> a<00:02:50.680> file<00:02:51.040> path<00:02:51.360> for<00:02:51.480> standard<00:02:51.880> out,\npoint. Um a file path for standard out,\npoint. Um a file path for standard out, standard<00:02:52.640> error,<00:02:52.959> and<00:02:53.120> standard<00:02:53.520> in.<00:02:53.920> You<00:02:54.000> can\nstandard error, and standard in. You can\nstandard error, and standard in. You can put<00:02:54.320> file<00:02:54.520> paths<00:02:54.760> here<00:02:55.000> and<00:02:55.120> then<00:02:55.240> it'll<00:02:55.720> use\nput file paths here and then it'll use\nput file paths here and then it'll use those<00:02:56.200> instead<00:02:56.520> of<00:02:57.120> um\nthose instead of um\nthose instead of um instead<00:02:58.120> of<00:02:58.160> the<00:02:58.280> defaults.<00:02:59.280> You<00:02:59.360> can<00:02:59.480> add\ninstead of the defaults. You can add\ninstead of the defaults. You can add custom<00:02:59.920> environment<00:03:00.400> strings.<00:03:01.200> And<00:03:01.320> then<00:03:01.480> you\ncustom environment strings. And then you\ncustom environment strings. And then you can<00:03:01.680> also\ncan also\ncan also enable<00:03:03.200> or<00:03:03.280> disable<00:03:03.920> debugging<00:03:04.280> of<00:03:04.400> sub\nenable or disable debugging of sub\nenable or disable debugging of sub processes.<00:03:05.280> Meaning<00:03:05.519> if<00:03:05.680> this<00:03:05.959> executable\nprocesses. Meaning if this executable\nprocesses. Meaning if this executable launched<00:03:06.840> another<00:03:07.160> process,<00:03:08.120> would<00:03:08.280> the\nlaunched another process, would the\nlaunched another process, would the debugger<00:03:08.720> automatically<00:03:09.160> attach<00:03:09.480> to<00:03:09.640> it<00:03:09.840> or\ndebugger automatically attach to it or\ndebugger automatically attach to it or not?<00:03:10.800> Um<00:03:10.880> sometimes<00:03:11.280> you<00:03:11.320> want<00:03:11.480> one,\nnot? Um sometimes you want one,\nnot? Um sometimes you want one, sometimes<00:03:12.000> you<00:03:12.080> want<00:03:12.880> uh\nsometimes you want uh\nsometimes you want uh the<00:03:13.600> other.<00:03:14.200> So,<00:03:14.400> that's<00:03:14.640> why<00:03:14.959> it's<00:03:15.120> this<00:03:15.519> uh\nthe other. So, that's why it's this uh\nthe other. So, that's why it's this uh per<00:03:15.720> target<00:03:16.000> option<00:03:16.280> here.\nper target option here.\nper target option here. >> Hi<00:03:17.680> everyone.<00:03:18.440> Let<00:03:18.720> me<00:03:18.800> take<00:03:19.040> a<00:03:19.080> break<00:03:19.360> to\n>> Hi everyone. Let me take a break to\n>> Hi everyone. Let me take a break to thank<00:03:19.720> members<00:03:20.239> of<00:03:20.400> the<00:03:20.560> show<00:03:20.920> who<00:03:21.120> made<00:03:21.400> this\nthank members of the show who made this\nthank members of the show who made this conversation<00:03:22.280> possible.<00:03:23.239> Members<00:03:23.720> get\nconversation possible. Members get\nconversation possible. Members get earlier<00:03:24.360> access<00:03:24.760> to<00:03:24.880> videos<00:03:25.519> including\nearlier access to videos including\nearlier access to videos including longer<00:03:26.600> unedited<00:03:27.360> footage<00:03:27.880> from<00:03:28.160> live\nlonger unedited footage from live\nlonger unedited footage from live streams<00:03:29.120> as<00:03:29.400> well<00:03:29.600> as<00:03:29.760> they're<00:03:30.000> invited<00:03:30.760> to\nstreams as well as they're invited to\nstreams as well as they're invited to our<00:03:31.040> private<00:03:31.600> Discord<00:03:32.080> server.<00:03:32.880> If<00:03:33.080> you<00:03:33.239> want\nour private Discord server. If you want\nour private Discord server. If you want to<00:03:33.600> support<00:03:33.959> the<00:03:34.080> show,<00:03:34.400> there<00:03:34.600> is<00:03:34.800> no<00:03:35.040> better\nto support the show, there is no better\nto support the show, there is no better way<00:03:35.600> than<00:03:35.840> becoming<00:03:36.400> a<00:03:36.480> member<00:03:37.040> on<00:03:37.280> YouTube<00:03:37.800> or\nway than becoming a member on YouTube or\nway than becoming a member on YouTube or Patreon.<00:03:38.959> Thank<00:03:39.280> you<00:03:39.600> so<00:03:39.840> much.\nPatreon. Thank you so much.\nPatreon. Thank you so much. >> So,<00:03:41.480> anyways,<00:03:42.360> when<00:03:42.519> you<00:03:42.640> run<00:03:43.360> the<00:03:43.920> debugger\n>> So, anyways, when you run the debugger\n>> So, anyways, when you run the debugger with<00:03:45.280> that<00:03:45.440> command<00:03:45.760> line,<00:03:46.000> it'll<00:03:46.280> create<00:03:46.519> one\nwith that command line, it'll create one\nwith that command line, it'll create one of<00:03:46.720> these<00:03:47.120> just<00:03:47.360> for<00:03:47.600> you.<00:03:48.440> Um<00:03:48.519> it'll<00:03:48.640> be\nof these just for you. Um it'll be\nof these just for you. Um it'll be thrown<00:03:49.000> away<00:03:49.239> when<00:03:49.400> you<00:03:49.519> exit<00:03:49.800> the<00:03:49.880> debugger.\nthrown away when you exit the debugger.\nthrown away when you exit the debugger. So,<00:03:50.440> it<00:03:50.519> won't<00:03:51.160> uh<00:03:51.320> like<00:03:51.680> stick<00:03:51.880> around.<00:03:52.160> You\nSo, it won't uh like stick around. You\nSo, it won't uh like stick around. You can<00:03:52.360> run<00:03:52.960> the<00:03:53.040> debugger<00:03:53.360> that<00:03:53.520> way<00:03:53.680> every\ncan run the debugger that way every\ncan run the debugger that way every single<00:03:54.080> time<00:03:54.320> if<00:03:54.440> you<00:03:54.520> want<00:03:54.720> to.\nsingle time if you want to.\nsingle time if you want to. Um\nUm\nUm Or<00:03:57.040> you<00:03:57.120> can<00:03:57.280> create<00:03:57.480> a<00:03:57.520> target<00:03:57.840> within<00:03:58.080> the\nOr you can create a target within the\nOr you can create a target within the context<00:03:58.880> of<00:03:59.680> the<00:03:59.800> debugger's<00:04:00.240> UI.<00:04:00.560> So,<00:04:00.720> to<00:04:00.840> do\ncontext of the debugger's UI. So, to do\ncontext of the debugger's UI. So, to do that,<00:04:01.240> all<00:04:01.320> you<00:04:01.440> do<00:04:01.840> is<00:04:02.720> you<00:04:02.800> can<00:04:02.920> click<00:04:03.120> this\nthat, all you do is you can click this\nthat, all you do is you can click this add<00:04:03.520> target<00:04:03.840> thing.<00:04:04.160> Actually,<00:04:04.680> maybe<00:04:04.920> what<00:04:05.080> I\nadd target thing. Actually, maybe what I\nadd target thing. Actually, maybe what I should<00:04:05.280> do<00:04:05.560> is<00:04:05.720> show<00:04:05.920> how<00:04:06.040> the<00:04:06.160> UI<00:04:07.120> paneling\nshould do is show how the UI paneling\nshould do is show how the UI paneling works<00:04:07.760> first.<00:04:08.160> So,<00:04:08.320> like<00:04:09.160> um<00:04:09.560> cuz\nworks first. So, like um cuz\nworks first. So, like um cuz it<00:04:10.680> comes<00:04:11.000> like<00:04:11.160> preloaded<00:04:11.640> with<00:04:11.760> a<00:04:11.800> bunch<00:04:12.000> of\nit comes like preloaded with a bunch of\nit comes like preloaded with a bunch of default<00:04:12.520> layouts<00:04:12.920> or<00:04:13.000> three<00:04:13.320> default\ndefault layouts or three default\ndefault layouts or three default layouts.<00:04:14.560> And<00:04:14.680> I<00:04:14.760> can<00:04:14.880> show<00:04:15.080> people<00:04:15.400> how<00:04:15.680> to\nlayouts. And I can show people how to\nlayouts. And I can show people how to get<00:04:17.000> to<00:04:17.079> this<00:04:17.239> tab<00:04:17.560> if<00:04:17.640> they<00:04:17.720> don't<00:04:17.959> see<00:04:18.160> it<00:04:18.320> or\nget to this tab if they don't see it or\nget to this tab if they don't see it or or<00:04:18.799> have<00:04:19.000> it<00:04:19.079> or<00:04:19.160> something<00:04:19.400> like<00:04:19.519> that.<00:04:19.760> So,\nor have it or something like that. So,\nor have it or something like that. So, um<00:04:21.000> obviously<00:04:21.880> um\num obviously um\num obviously um uh<00:04:23.720> when<00:04:24.400> this<00:04:24.600> is<00:04:24.720> one<00:04:24.840> of<00:04:24.919> the<00:04:25.000> default\nuh when this is one of the default\nuh when this is one of the default layouts,<00:04:26.280> uh<00:04:26.680> and<00:04:26.840> I<00:04:26.919> pick<00:04:27.160> one<00:04:27.280> of<00:04:27.320> these\nlayouts, uh and I pick one of these\nlayouts, uh and I pick one of these depending<00:04:27.800> on<00:04:27.919> screen<00:04:28.240> size.<00:04:28.520> So,<00:04:29.080> the\ndepending on screen size. So, the\ndepending on screen size. So, the default<00:04:29.600> layout<00:04:29.840> is<00:04:29.960> like<00:04:30.160> this,<00:04:30.400> but<00:04:30.520> you<00:04:30.600> can\ndefault layout is like this, but you can\ndefault layout is like this, but you can see<00:04:30.840> it<00:04:30.960> doesn't<00:04:31.240> work<00:04:31.440> super<00:04:31.720> well<00:04:31.960> when<00:04:32.080> you\nsee it doesn't work super well when you\nsee it doesn't work super well when you have<00:04:32.320> like<00:04:32.480> a<00:04:32.560> larger<00:04:32.880> font<00:04:33.120> size.<00:04:33.360> Like,<00:04:33.480> if\nhave like a larger font size. Like, if\nhave like a larger font size. Like, if you're<00:04:33.680> on<00:04:33.760> a<00:04:33.800> super<00:04:34.080> high<00:04:34.240> DPI<00:04:35.360> monitor,<00:04:35.840> this\nyou're on a super high DPI monitor, this\nyou're on a super high DPI monitor, this is<00:04:36.080> just<00:04:36.320> a<00:04:36.360> little<00:04:36.560> bit<00:04:36.919> like<00:04:37.560> chaotic.<00:04:38.280> Um\nis just a little bit like chaotic. Um\nis just a little bit like chaotic. Um in<00:04:38.919> fact,<00:04:39.120> I<00:04:39.160> think<00:04:39.320> it<00:04:39.360> might<00:04:39.480> be<00:04:39.560> a<00:04:39.600> little\nin fact, I think it might be a little\nin fact, I think it might be a little bit<00:04:40.080> too<00:04:40.240> chaotic<00:04:40.680> anyways,<00:04:41.080> but<00:04:41.200> it's\nbit too chaotic anyways, but it's\nbit too chaotic anyways, but it's especially<00:04:41.840> chaotic<00:04:42.200> if<00:04:42.320> you<00:04:42.400> have<00:04:42.560> like<00:04:42.720> a\nespecially chaotic if you have like a\nespecially chaotic if you have like a smaller\nsmaller\nsmaller um<00:04:44.720> if<00:04:44.880> you<00:04:44.919> have<00:04:45.040> a<00:04:45.080> larger<00:04:45.320> font<00:04:45.560> size,\num if you have a larger font size,\num if you have a larger font size, basically,<00:04:46.440> um<00:04:46.840> on<00:04:47.080> a<00:04:47.400> higher<00:04:47.600> DPI<00:04:47.919> screen.\nbasically, um on a higher DPI screen.\nbasically, um on a higher DPI screen. So,\nSo,\nSo, um<00:04:49.960> many<00:04:50.160> times<00:04:50.400> it'll<00:04:50.560> pick<00:04:50.720> this<00:04:50.880> compact\num many times it'll pick this compact\num many times it'll pick this compact layout.\nlayout.\nlayout. This<00:04:52.840> still<00:04:53.040> has<00:04:53.200> a<00:04:53.280> lot<00:04:53.440> of<00:04:53.520> stuff<00:04:53.800> that<00:04:53.919> you\nThis still has a lot of stuff that you\nThis still has a lot of stuff that you might<00:04:54.120> just<00:04:54.280> not<00:04:54.440> care<00:04:54.640> about.<00:04:55.040> And<00:04:55.120> then\nmight just not care about. And then\nmight just not care about. And then there's<00:04:55.440> this<00:04:55.640> simple<00:04:55.960> panel<00:04:56.280> layout,<00:04:56.520> which\nthere's this simple panel layout, which\nthere's this simple panel layout, which is<00:04:56.800> literally<00:04:57.280> an<00:04:57.400> area<00:04:57.640> for<00:04:57.760> source<00:04:58.000> code<00:04:58.560> and\nis literally an area for source code and\nis literally an area for source code and an<00:04:58.760> area<00:04:59.080> for\nan area for\nan area for uh<00:05:00.360> a<00:05:00.440> watch<00:05:00.680> window.<00:05:01.040> Now,\nuh a watch window. Now,\nuh a watch window. Now, I<00:05:02.919> could<00:05:03.120> start<00:05:03.280> with<00:05:03.400> this.<00:05:04.080> Um<00:05:04.880> what<00:05:05.040> I\nI could start with this. Um what I\nI could start with this. Um what I should<00:05:05.400> say<00:05:05.560> first<00:05:05.880> is<00:05:05.960> that<00:05:06.200> no-<00:05:06.440> nothing\nshould say first is that no- nothing\nshould say first is that no- nothing about<00:05:06.880> these<00:05:07.000> panels<00:05:07.320> are<00:05:07.400> special,<00:05:08.040> so<00:05:08.240> I<00:05:08.280> can\nabout these panels are special, so I can\nabout these panels are special, so I can I<00:05:08.600> can<00:05:08.840> rearrange<00:05:09.360> these<00:05:09.600> however<00:05:09.880> I<00:05:09.960> want.<00:05:10.680> Um\nI can rearrange these however I want. Um\nI can rearrange these however I want. Um it's<00:05:11.360> just<00:05:11.880> I<00:05:11.919> can<00:05:12.000> put<00:05:12.120> them<00:05:12.200> both<00:05:12.360> on<00:05:12.440> the\nit's just I can put them both on the\nit's just I can put them both on the same<00:05:12.720> tab<00:05:12.960> if<00:05:13.080> I<00:05:13.120> want<00:05:13.400> to.<00:05:13.560> I<00:05:13.640> can<00:05:13.760> do<00:05:14.480> like\nsame tab if I want to. I can do like\nsame tab if I want to. I can do like whatever<00:05:14.919> kind<00:05:15.120> of<00:05:15.200> organization<00:05:15.760> I<00:05:15.840> want,\nwhatever kind of organization I want,\nwhatever kind of organization I want, that'll<00:05:16.800> just<00:05:17.240> be<00:05:17.400> fine.<00:05:18.240> Um\nthat'll just be fine. Um\nthat'll just be fine. Um So,<00:05:19.880> if<00:05:20.120> I<00:05:20.160> have<00:05:20.400> nothing,\nSo, if I have nothing,\nSo, if I have nothing, um<00:05:22.000> it'll<00:05:22.160> just<00:05:22.360> have<00:05:22.480> this<00:05:22.680> empty<00:05:22.960> panel\num it'll just have this empty panel\num it'll just have this empty panel here.<00:05:24.000> I<00:05:24.080> can<00:05:24.600> uh<00:05:24.680> I<00:05:24.760> can<00:05:24.880> click<00:05:25.080> this<00:05:25.240> plus<00:05:25.480> to\nhere. I can uh I can click this plus to\nhere. I can uh I can click this plus to add<00:05:25.720> a<00:05:25.760> new<00:05:25.919> tab.<00:05:26.600> I<00:05:26.640> can<00:05:26.760> add<00:05:26.880> a<00:05:26.919> watch<00:05:27.200> window.\nadd a new tab. I can add a watch window.\nadd a new tab. I can add a watch window. Um<00:05:28.560> and<00:05:28.680> then<00:05:28.760> if<00:05:28.880> I<00:05:28.919> want<00:05:29.120> to<00:05:29.160> look<00:05:29.280> at<00:05:29.360> my\nUm and then if I want to look at my\nUm and then if I want to look at my targets,<00:05:30.000> I<00:05:30.080> can<00:05:30.840> uh<00:05:30.960> I<00:05:31.000> can<00:05:31.160> search<00:05:31.600> by\ntargets, I can uh I can search by\ntargets, I can uh I can search by typing,<00:05:32.320> and<00:05:32.480> there's<00:05:32.680> just<00:05:32.840> a<00:05:32.880> targets<00:05:33.200> tab\ntyping, and there's just a targets tab\ntyping, and there's just a targets tab that<00:05:33.520> I<00:05:33.560> can<00:05:33.680> open<00:05:33.880> up,<00:05:33.960> and<00:05:34.080> there's<00:05:34.320> all<00:05:34.400> my\nthat I can open up, and there's all my\nthat I can open up, and there's all my targets.\ntargets.\ntargets. Um\nUm\nUm So,<00:05:38.200> anyways,\nSo, anyways,\nSo, anyways, we're<00:05:39.520> at<00:05:39.600> the<00:05:39.680> list<00:05:39.840> of<00:05:39.919> targets.<00:05:40.240> We<00:05:40.280> have\nwe're at the list of targets. We have\nwe're at the list of targets. We have all<00:05:40.520> these<00:05:40.760> executables<00:05:41.280> we<00:05:41.400> can<00:05:41.560> launch<00:05:41.840> and\nall these executables we can launch and\nall these executables we can launch and debug.\ndebug.\ndebug. Um<00:05:44.840> if<00:05:45.040> I<00:05:45.160> don't<00:05:45.640> have<00:05:46.400> the<00:05:46.520> one<00:05:46.720> I<00:05:46.800> want<00:05:47.120> to<00:05:47.400> run\nUm if I don't have the one I want to run\nUm if I don't have the one I want to run from<00:05:47.800> here,<00:05:48.360> I<00:05:48.440> can<00:05:48.600> click<00:05:48.800> add<00:05:49.000> target,\nfrom here, I can click add target,\nfrom here, I can click add target, brings<00:05:49.960> up<00:05:50.080> this<00:05:50.200> little<00:05:50.440> file,<00:05:51.600> um\nbrings up this little file, um\nbrings up this little file, um this<00:05:52.880> this<00:05:53.080> like<00:05:53.400> file<00:05:53.720> browser,<00:05:54.760> um\nthis this like file browser, um\nthis this like file browser, um and<00:05:56.720> I<00:05:56.760> don't<00:05:56.960> know.<00:05:57.080> I<00:05:57.120> mean,<00:05:57.280> I've<00:05:57.400> added<00:05:57.600> all\nand I don't know. I mean, I've added all\nand I don't know. I mean, I've added all the<00:05:57.800> executables<00:05:58.360> I<00:05:58.400> care<00:05:58.640> to<00:05:58.760> show,<00:05:59.120> but<00:05:59.880> I\nthe executables I care to show, but I\nthe executables I care to show, but I can<00:06:00.160> just<00:06:00.320> go<00:06:00.520> to<00:06:00.680> like\ncan just go to like\ncan just go to like like,<00:06:02.040> you<00:06:02.120> know,<00:06:02.240> you<00:06:02.320> can<00:06:02.440> just<00:06:02.600> type\nlike, you know, you can just type\nlike, you know, you can just type find<00:06:03.960> whatever<00:06:04.200> path<00:06:04.480> you<00:06:04.600> want,<00:06:05.200> um\nfind whatever path you want, um\nfind whatever path you want, um >> at<00:06:06.040> the<00:06:06.120> debugger<00:06:06.520> itself.\n>> at the debugger itself.\n>> at the debugger itself. >> I<00:06:08.560> I<00:06:08.640> already<00:06:08.880> have<00:06:09.040> that<00:06:09.200> one<00:06:09.560> right<00:06:09.760> here.\n>> I I already have that one right here.\n>> I I already have that one right here. This<00:06:10.480> is<00:06:10.600> the<00:06:10.680> This<00:06:10.840> is<00:06:10.920> the<00:06:10.960> one<00:06:11.080> I<00:06:11.120> use<00:06:11.320> for\nThis is the This is the one I use for\nThis is the This is the one I use for actually<00:06:12.080> working<00:06:12.360> on<00:06:12.440> the<00:06:12.480> debugger,<00:06:12.800> but\nactually working on the debugger, but\nactually working on the debugger, but yeah,<00:06:13.480> I<00:06:13.520> mean,<00:06:13.680> if<00:06:13.800> I<00:06:13.880> wanted<00:06:14.200> to<00:06:14.400> do<00:06:14.600> that,\nyeah, I mean, if I wanted to do that,\nyeah, I mean, if I wanted to do that, I'd<00:06:14.920> just<00:06:15.080> do<00:06:15.840> radare2.exe,\nI'd just do radare2.exe,\nI'd just do radare2.exe, opens<00:06:17.760> up<00:06:17.880> the<00:06:17.960> editor<00:06:18.320> for<00:06:18.520> it.<00:06:18.600> I<00:06:18.640> can<00:06:18.760> say\nopens up the editor for it. I can say\nopens up the editor for it. I can say like<00:06:19.200> dash<00:06:19.480> foo,<00:06:19.720> dash<00:06:20.000> bar,<00:06:20.960> um<00:06:21.040> whatever<00:06:21.280> I\nlike dash foo, dash bar, um whatever I\nlike dash foo, dash bar, um whatever I want<00:06:21.640> here,<00:06:22.360> um<00:06:22.640> and<00:06:22.760> then\nwant here, um and then\nwant here, um and then this<00:06:24.240> is<00:06:24.320> something<00:06:24.560> I<00:06:24.600> can<00:06:24.720> now<00:06:24.919> launch.<00:06:25.440> So,\nthis is something I can now launch. So,\nthis is something I can now launch. So, I'll<00:06:25.960> remove<00:06:26.240> it<00:06:26.360> cuz<00:06:26.560> I<00:06:26.640> already<00:06:26.880> have<00:06:27.080> one\nI'll remove it cuz I already have one\nI'll remove it cuz I already have one for<00:06:27.440> it.\nfor it.\nfor it. Um\nUm\nUm but<00:06:30.280> anyways,<00:06:30.640> I've<00:06:30.760> got<00:06:31.200> an<00:06:31.280> executable<00:06:31.760> that\nbut anyways, I've got an executable that\nbut anyways, I've got an executable that I<00:06:31.919> want<00:06:32.080> to<00:06:32.160> debug.<00:06:33.120> Um<00:06:33.640> I<00:06:33.919> can<00:06:34.280> either<00:06:34.720> run<00:06:35.000> it.\nI want to debug. Um I can either run it.\nI want to debug. Um I can either run it. Um<00:06:35.840> in<00:06:35.960> this<00:06:36.080> case,<00:06:36.240> it's<00:06:36.360> a<00:06:36.400> test<00:06:36.720> executable\nUm in this case, it's a test executable\nUm in this case, it's a test executable that<00:06:37.520> you<00:06:37.640> want<00:06:37.840> to<00:06:37.919> step<00:06:38.160> through,<00:06:38.480> so<00:06:38.640> I\nthat you want to step through, so I\nthat you want to step through, so I won't<00:06:39.080> I<00:06:39.120> won't<00:06:39.280> do<00:06:39.360> that.<00:06:40.080> Um<00:06:40.560> but<00:06:40.640> I<00:06:40.680> can<00:06:40.760> also\nwon't I won't do that. Um but I can also\nwon't I won't do that. Um but I can also step<00:06:41.240> into<00:06:41.480> it<00:06:41.600> using<00:06:41.960> either<00:06:42.160> step<00:06:42.400> over<00:06:42.600> step\nstep into it using either step over step\nstep into it using either step over step uh<00:06:43.440> into.<00:06:43.760> It<00:06:43.840> doesn't<00:06:44.120> matter<00:06:44.360> which\nuh into. It doesn't matter which\nuh into. It doesn't matter which command,<00:06:45.000> but<00:06:45.760> um\ncommand, but um\ncommand, but um so<00:06:47.000> I<00:06:47.040> can<00:06:47.160> run<00:06:47.360> either<00:06:47.560> one<00:06:47.680> of<00:06:47.760> these<00:06:47.919> to<00:06:48.000> get\nso I can run either one of these to get\nso I can run either one of these to get into<00:06:48.280> the<00:06:48.360> program.<00:06:48.960> Now,<00:06:49.720> another<00:06:50.080> thing<00:06:50.240> I\ninto the program. Now, another thing I\ninto the program. Now, another thing I should<00:06:50.440> mention<00:06:50.680> about<00:06:50.880> the<00:06:50.960> UI<00:06:51.320> before\nshould mention about the UI before\nshould mention about the UI before getting<00:06:52.360> into<00:06:52.480> the<00:06:52.600> actual<00:06:52.840> debugging,\ngetting into the actual debugging,\ngetting into the actual debugging, 100%<00:06:55.440> of<00:06:55.520> the<00:06:55.600> operations<00:06:56.160> I've<00:06:56.600> covered<00:06:56.919> so\n100% of the operations I've covered so\n100% of the operations I've covered so far<00:06:57.480> can<00:06:57.760> be<00:06:58.000> done<00:06:58.560> through<00:06:59.240> uh<00:06:59.680> generalized\nfar can be done through uh generalized\nfar can be done through uh generalized command<00:07:01.040> lister.<00:07:01.400> So,<00:07:01.600> basically,<00:07:02.120> if<00:07:02.240> you\ncommand lister. So, basically, if you\ncommand lister. So, basically, if you hit<00:07:02.560> the<00:07:02.680> help<00:07:03.440> menu<00:07:03.720> up<00:07:03.840> here,<00:07:04.520> it's<00:07:04.720> got<00:07:04.960> a\nhit the help menu up here, it's got a\nhit the help menu up here, it's got a search<00:07:05.320> for<00:07:05.440> commands<00:07:05.760> and<00:07:05.880> settings,<00:07:06.360> and\nsearch for commands and settings, and\nsearch for commands and settings, and you<00:07:06.560> can<00:07:06.640> see<00:07:06.800> you<00:07:06.919> can<00:07:07.160> you<00:07:07.280> can<00:07:08.000> trigger<00:07:08.240> this\nyou can see you can you can trigger this\nyou can see you can you can trigger this quickly<00:07:08.760> by<00:07:08.880> hitting<00:07:09.120> F1.<00:07:10.080> But<00:07:10.160> if<00:07:10.240> I<00:07:10.320> click\nquickly by hitting F1. But if I click\nquickly by hitting F1. But if I click that,<00:07:10.720> it<00:07:10.800> opens<00:07:11.160> up<00:07:11.480> this\nthat, it opens up this\nthat, it opens up this uh<00:07:12.880> lister<00:07:13.240> here,<00:07:13.520> and<00:07:13.600> this<00:07:13.720> shows<00:07:13.960> all<00:07:14.160> of\nuh lister here, and this shows all of\nuh lister here, and this shows all of the<00:07:14.360> commands<00:07:14.680> that<00:07:14.800> you<00:07:14.880> can<00:07:15.000> do<00:07:15.160> in<00:07:15.240> the\nthe commands that you can do in the\nthe commands that you can do in the debugger.<00:07:15.680> So,<00:07:15.800> I<00:07:15.840> can<00:07:16.000> say<00:07:16.200> like<00:07:17.040> a<00:07:17.200> launch\ndebugger. So, I can say like a launch\ndebugger. So, I can say like a launch and<00:07:17.919> step<00:07:18.200> into\nand step into\nand step into um<00:07:19.760> if<00:07:19.919> I<00:07:19.960> run<00:07:20.200> that,<00:07:20.560> it'll<00:07:20.720> ask<00:07:20.919> me<00:07:21.000> for<00:07:21.120> a\num if I run that, it'll ask me for a\num if I run that, it'll ask me for a target,<00:07:21.840> and<00:07:21.919> then<00:07:22.040> if<00:07:22.160> I<00:07:22.240> click<00:07:22.480> one,\ntarget, and then if I click one,\ntarget, and then if I click one, uh<00:07:23.480> it'll<00:07:24.360> step<00:07:24.680> into<00:07:24.919> that<00:07:25.280> target<00:07:25.600> that<00:07:25.720> I\nuh it'll step into that target that I\nuh it'll step into that target that I that<00:07:26.080> I<00:07:26.120> picked.<00:07:26.400> That's<00:07:27.080> uh<00:07:27.160> that's<00:07:27.760> a<00:07:27.840> slower\nthat I picked. That's uh that's a slower\nthat I picked. That's uh that's a slower path<00:07:28.600> for<00:07:28.760> just<00:07:28.960> like<00:07:29.160> if<00:07:29.320> I've<00:07:29.440> got<00:07:29.640> this\npath for just like if I've got this\npath for just like if I've got this target<00:07:30.120> selected,<00:07:30.880> and<00:07:30.960> if<00:07:31.080> I<00:07:31.120> hit<00:07:31.360> F10<00:07:32.000> or\ntarget selected, and if I hit F10 or\ntarget selected, and if I hit F10 or F11,<00:07:33.160> then<00:07:33.360> it'll<00:07:33.560> just<00:07:33.800> get<00:07:33.960> me<00:07:34.360> to<00:07:34.480> the<00:07:34.560> same\nF11, then it'll just get me to the same\nF11, then it'll just get me to the same spot.<00:07:34.960> So,<00:07:35.040> I've<00:07:35.160> stepped<00:07:35.520> into<00:07:35.760> the<00:07:35.840> program.\nspot. So, I've stepped into the program.\nspot. So, I've stepped into the program. Um<00:07:37.680> and<00:07:37.760> now<00:07:37.919> that<00:07:38.080> I'm<00:07:38.400> now<00:07:38.520> that<00:07:38.640> I'm<00:07:38.760> here,\nUm and now that I'm now that I'm here,\nUm and now that I'm now that I'm here, let<00:07:39.840> me<00:07:39.960> do\nlet me do\nlet me do um\num\num this<00:07:42.840> layout<00:07:43.120> here.\nthis layout here.\nthis layout here. >> [snorts]\n>> [snorts]\n>> [snorts] >> So,<00:07:44.840> uh<00:07:44.920> um\n>> So, uh um\n>> So, uh um So,<00:07:47.040> yeah,<00:07:47.200> I've<00:07:47.320> got<00:07:47.480> my<00:07:47.600> watch<00:07:47.800> window<00:07:48.120> and\nSo, yeah, I've got my watch window and\nSo, yeah, I've got my watch window and I've<00:07:48.400> got<00:07:48.680> my<00:07:49.080> source<00:07:49.400> view.<00:07:49.600> In<00:07:49.680> the<00:07:49.760> source\nI've got my source view. In the source\nI've got my source view. In the source view,<00:07:50.200> obviously,<00:07:50.520> I<00:07:50.560> can<00:07:50.720> see<00:07:50.920> where<00:07:51.200> my\nview, obviously, I can see where my\nview, obviously, I can see where my thread<00:07:51.680> happens<00:07:52.000> to<00:07:52.080> be.\nthread happens to be.\nthread happens to be. Um\nUm\nUm with<00:07:54.320> the<00:07:54.400> step<00:07:54.640> over<00:07:54.840> step<00:07:55.080> into<00:07:55.280> commands\nwith the step over step into commands\nwith the step over step into commands and<00:07:56.000> step<00:07:56.280> out,<00:07:56.600> these<00:07:56.840> are<00:07:56.960> three<00:07:57.560> super\nand step out, these are three super\nand step out, these are three super common<00:07:58.080> debugger<00:07:58.400> commands.<00:07:58.720> Step<00:07:58.920> over\ncommon debugger commands. Step over\ncommon debugger commands. Step over means<00:07:59.320> stepping<00:07:59.680> over<00:07:59.920> a<00:07:59.960> line<00:08:00.160> of<00:08:00.240> source\nmeans stepping over a line of source\nmeans stepping over a line of source code<00:08:00.760> even<00:08:00.960> if<00:08:01.080> that\ncode even if that\ncode even if that code<00:08:02.400> were<00:08:02.520> to<00:08:02.640> call<00:08:03.000> into<00:08:03.240> a<00:08:03.280> function,\ncode were to call into a function,\ncode were to call into a function, um<00:08:04.720> it<00:08:04.840> steps<00:08:05.120> over<00:08:05.360> it.<00:08:05.640> But,<00:08:05.760> if<00:08:05.840> I<00:08:05.920> want<00:08:06.080> to\num it steps over it. But, if I want to\num it steps over it. But, if I want to step<00:08:06.480> into<00:08:06.720> a<00:08:06.800> function<00:08:07.160> call,<00:08:07.440> I<00:08:07.480> hit<00:08:07.680> F11<00:08:08.240> or\nstep into a function call, I hit F11 or\nstep into a function call, I hit F11 or uh<00:08:09.040> run<00:08:09.560> otherwise<00:08:10.000> just<00:08:10.160> run<00:08:10.280> the<00:08:10.360> step<00:08:10.560> into\nuh run otherwise just run the step into\nuh run otherwise just run the step into command.\ncommand.\ncommand. Um<00:08:12.400> and<00:08:12.520> then<00:08:12.640> it'll<00:08:13.200> it'll<00:08:13.400> jump<00:08:13.680> into<00:08:13.880> a\nUm and then it'll it'll jump into a\nUm and then it'll it'll jump into a function<00:08:14.240> call<00:08:14.400> that<00:08:14.560> way.<00:08:15.360> Um<00:08:15.720> if<00:08:15.880> I<00:08:15.919> want<00:08:16.200> to\nfunction call that way. Um if I want to\nfunction call that way. Um if I want to get<00:08:16.720> out<00:08:16.840> of<00:08:16.919> a<00:08:16.960> function<00:08:17.280> call,<00:08:17.440> I<00:08:17.480> have<00:08:17.600> to\nget out of a function call, I have to\nget out of a function call, I have to run<00:08:17.840> step<00:08:18.160> out,<00:08:18.640> which<00:08:18.800> is<00:08:18.919> shift<00:08:19.200> F11.\nrun step out, which is shift F11.\nrun step out, which is shift F11. That'll<00:08:21.120> pop<00:08:21.320> me<00:08:21.400> back.<00:08:21.919> It<00:08:21.960> basically<00:08:22.240> runs\nThat'll pop me back. It basically runs\nThat'll pop me back. It basically runs to<00:08:22.520> the<00:08:22.600> end<00:08:22.680> of<00:08:22.760> the<00:08:22.800> function<00:08:23.200> until<00:08:23.440> the\nto the end of the function until the\nto the end of the function until the function<00:08:23.840> exits<00:08:24.200> and<00:08:24.280> then<00:08:24.440> it<00:08:24.560> and<00:08:24.680> then<00:08:24.760> it\nfunction exits and then it and then it\nfunction exits and then it and then it pops<00:08:25.520> out<00:08:25.640> and<00:08:26.000> and<00:08:26.160> ends<00:08:26.760> wherever<00:08:27.520> wherever\npops out and and ends wherever wherever\npops out and and ends wherever wherever the<00:08:27.840> return<00:08:28.120> point<00:08:28.360> is.\nthe return point is.\nthe return point is. Um\nUm\nUm so,<00:08:30.840> I<00:08:30.880> can<00:08:30.905> [clears throat]<00:08:31.000> click<00:08:31.160> and<00:08:31.240> drag\nso, I can [clears throat] click and drag\nso, I can [clears throat] click and drag a<00:08:31.560> thread<00:08:31.800> as<00:08:31.919> well.<00:08:32.080> I<00:08:32.159> just<00:08:32.320> did<00:08:32.479> that.<00:08:32.800> So,\na thread as well. I just did that. So,\na thread as well. I just did that. So, if<00:08:33.200> I<00:08:33.280> want<00:08:33.400> to<00:08:33.479> reposition<00:08:34.000> a<00:08:34.039> thread,<00:08:34.400> this\nif I want to reposition a thread, this\nif I want to reposition a thread, this doesn't<00:08:34.919> do<00:08:35.080> any<00:08:35.280> timeline<00:08:35.680> debugging<00:08:36.000> stuff\ndoesn't do any timeline debugging stuff\ndoesn't do any timeline debugging stuff right<00:08:36.400> now.<00:08:36.599> So,<00:08:37.479> um<00:08:38.240> or<00:08:38.440> well,<00:08:38.599> this<00:08:38.760> feature\nright now. So, um or well, this feature\nright now. So, um or well, this feature would<00:08:39.200> never<00:08:39.400> do<00:08:39.520> that.\nwould never do that.\nwould never do that. >> Wait,<00:08:40.159> wait,<00:08:40.280> wait,<00:08:40.400> wait,<00:08:40.520> wait.<00:08:40.800> What<00:08:41.320> Wait,\n>> Wait, wait, wait, wait, wait. What Wait,\n>> Wait, wait, wait, wait, wait. What Wait, what<00:08:41.719> you<00:08:41.840> can<00:08:42.039> do?<00:08:42.400> What<00:08:42.760> would<00:08:43.039> you<00:08:43.120> can<00:08:43.599> you\nwhat you can do? What would you can you\nwhat you can do? What would you can you can<00:08:43.880> drag<00:08:44.280> a<00:08:44.360> thread?\ncan drag a thread?\ncan drag a thread? >> Oh,<00:08:46.440> yeah.<00:08:46.680> So,<00:08:46.839> here<00:08:47.000> So,<00:08:47.120> here<00:08:47.600> here's<00:08:47.880> the\n>> Oh, yeah. So, here So, here here's the\n>> Oh, yeah. So, here So, here here's the position<00:08:48.320> of<00:08:48.440> my<00:08:48.600> main<00:08:48.880> thread.<00:08:49.160> You<00:08:49.240> can<00:08:49.360> see\nposition of my main thread. You can see\nposition of my main thread. You can see it's<00:08:49.880> it's<00:08:50.000> got<00:08:50.160> the<00:08:50.240> name<00:08:50.640> mule<00:08:50.920> main<00:08:51.160> thread.\nit's it's got the name mule main thread.\nit's it's got the name mule main thread. And<00:08:51.760> this<00:08:51.880> is<00:08:52.000> its<00:08:52.120> call<00:08:52.360> stack,<00:08:52.640> too,<00:08:52.800> when<00:08:52.920> I\nAnd this is its call stack, too, when I\nAnd this is its call stack, too, when I hover<00:08:53.240> it.<00:08:53.400> So,<00:08:53.520> you<00:08:53.600> can<00:08:53.720> see<00:08:54.560> mule<00:08:54.839> main,<00:08:55.440> win\nhover it. So, you can see mule main, win\nhover it. So, you can see mule main, win main,<00:08:56.480> um\nmain, um\nmain, um >> Yeah.\n>> Yeah.\n>> Yeah. >> Basically,<00:08:57.960> there's<00:08:58.120> the<00:08:58.200> full<00:08:58.360> call<00:08:58.520> stack.\n>> Basically, there's the full call stack.\n>> Basically, there's the full call stack. So,<00:08:58.720> you<00:08:58.800> have<00:08:58.880> a<00:08:58.920> couple<00:08:59.120> things<00:08:59.360> in<00:08:59.600> in<00:08:59.760> like\nSo, you have a couple things in in like\nSo, you have a couple things in in like the<00:09:00.440> from<00:09:01.000> the<00:09:01.120> kernel,<00:09:01.760> um<00:09:02.200> not<00:09:02.400> literally\nthe from the kernel, um not literally\nthe from the kernel, um not literally the<00:09:02.800> kernel,<00:09:03.040> but<00:09:03.520> the<00:09:03.640> user<00:09:03.880> space<00:09:04.120> of<00:09:04.200> the\nthe kernel, but the user space of the\nthe kernel, but the user space of the kernel.<00:09:05.200> And<00:09:05.280> then<00:09:05.440> you<00:09:05.520> have<00:09:05.800> s<00:09:06.000> e<00:09:06.080> r<00:09:06.160> t<00:09:06.360> common\nkernel. And then you have s e r t common\nkernel. And then you have s e r t common main,<00:09:07.360> s<00:09:07.560> e<00:09:07.839> a<00:09:08.400> s<00:09:08.640> e<00:09:08.839> h,<00:09:09.200> and<00:09:09.320> then<00:09:09.480> invoke<00:09:09.920> main,\nmain, s e a s e h, and then invoke main,\nmain, s e a s e h, and then invoke main, which<00:09:10.280> is<00:09:10.400> an<00:09:10.520> inline<00:09:11.000> function.<00:09:11.600> And<00:09:11.680> then\nwhich is an inline function. And then\nwhich is an inline function. And then you<00:09:12.120> have<00:09:12.280> win<00:09:12.480> main,<00:09:12.720> which<00:09:12.839> is<00:09:12.960> actually<00:09:13.240> in\nyou have win main, which is actually in\nyou have win main, which is actually in this<00:09:13.440> program.<00:09:13.760> And<00:09:13.839> then<00:09:13.960> you<00:09:14.000> have<00:09:14.160> mule\nthis program. And then you have mule\nthis program. And then you have mule main,<00:09:15.240> which<00:09:15.440> is<00:09:15.520> just<00:09:15.760> this<00:09:15.920> function<00:09:16.240> right\nmain, which is just this function right\nmain, which is just this function right here.\nhere.\nhere. So,<00:09:17.240> that's<00:09:17.440> the<00:09:17.520> call<00:09:17.720> stack.<00:09:17.960> This<00:09:18.120> is<00:09:18.200> the\nSo, that's the call stack. This is the\nSo, that's the call stack. This is the thread.<00:09:18.760> And<00:09:18.880> if<00:09:19.000> I<00:09:19.040> want<00:09:19.280> to<00:09:19.440> reposition<00:09:20.480> the\nthread. And if I want to reposition the\nthread. And if I want to reposition the instruction<00:09:21.080> pointer<00:09:21.360> of<00:09:21.440> the<00:09:21.520> thread,<00:09:22.160> cuz\ninstruction pointer of the thread, cuz\ninstruction pointer of the thread, cuz this<00:09:22.680> arrow<00:09:23.000> is<00:09:23.080> showing<00:09:23.520> what<00:09:23.680> instruction\nthis arrow is showing what instruction\nthis arrow is showing what instruction is<00:09:24.200> going<00:09:24.320> to<00:09:24.400> execute<00:09:24.760> next,<00:09:25.080> right?<00:09:25.560> Or<00:09:25.680> what\nis going to execute next, right? Or what\nis going to execute next, right? Or what code<00:09:26.080> is<00:09:26.160> going<00:09:26.280> to<00:09:26.360> execute<00:09:26.720> next.<00:09:27.440> If<00:09:27.560> I\ncode is going to execute next. If I\ncode is going to execute next. If I wanted<00:09:27.880> to<00:09:27.960> change<00:09:28.280> that,<00:09:28.560> I<00:09:28.720> just<00:09:29.200> I<00:09:29.280> can\nwanted to change that, I just I can\nwanted to change that, I just I can click<00:09:29.640> and<00:09:29.720> drag<00:09:30.040> the<00:09:30.120> thread.\nclick and drag the thread.\nclick and drag the thread. But,<00:09:31.480> then<00:09:31.640> you<00:09:31.720> will\nBut, then you will\nBut, then you will >> say,<00:09:32.160> \"Hey,<00:09:32.360> I<00:09:32.440> actually<00:09:32.880> skip<00:09:33.360> the<00:09:33.720> the<00:09:33.800> ones\n>> say, \"Hey, I actually skip the the ones\n>> say, \"Hey, I actually skip the the ones in<00:09:34.160> between?\"\nin between?\"\nin between?\" No,<00:09:35.960> so<00:09:36.120> it<00:09:36.160> just<00:09:36.440> changes<00:09:36.800> the<00:09:36.920> position<00:09:37.360> of\nNo, so it just changes the position of\nNo, so it just changes the position of the<00:09:37.560> thread's<00:09:37.960> instruction<00:09:38.440> pointer.<00:09:38.840> So,<00:09:39.480> um\nthe thread's instruction pointer. So, um\nthe thread's instruction pointer. So, um all<00:09:40.000> the<00:09:40.440> like<00:09:40.640> it's<00:09:40.760> not<00:09:40.920> changing<00:09:41.200> any\nall the like it's not changing any\nall the like it's not changing any memory<00:09:41.880> or<00:09:42.040> anything.<00:09:42.320> It's<00:09:42.760> only<00:09:43.040> changing\nmemory or anything. It's only changing\nmemory or anything. It's only changing the<00:09:43.440> instruction<00:09:43.840> pointer<00:09:44.080> register,\nthe instruction pointer register,\nthe instruction pointer register, actually,<00:09:45.680> of<00:09:45.800> the<00:09:45.880> thread.\nactually, of the thread.\nactually, of the thread. Um<00:09:47.160> so,<00:09:47.280> you<00:09:47.360> can<00:09:47.520> rerun<00:09:47.920> code<00:09:48.480> this<00:09:48.720> way.<00:09:49.320> Um\nUm so, you can rerun code this way. Um\nUm so, you can rerun code this way. Um if<00:09:50.680> you<00:09:50.800> have<00:09:51.000> pretty<00:09:51.200> deterministic<00:09:51.800> code,\nif you have pretty deterministic code,\nif you have pretty deterministic code, this<00:09:52.280> actually<00:09:52.560> gets<00:09:52.800> you<00:09:52.960> like,<00:09:53.720> you<00:09:53.800> know,\nthis actually gets you like, you know,\nthis actually gets you like, you know, pretty<00:09:54.200> close<00:09:54.560> to<00:09:54.720> the<00:09:54.920> full,<00:09:55.800> uh\npretty close to the full, uh\npretty close to the full, uh like<00:09:56.560> this<00:09:56.760> is<00:09:57.040> a<00:09:57.120> lot<00:09:57.440> like<00:09:57.680> timeline\nlike this is a lot like timeline\nlike this is a lot like timeline debugging<00:09:58.560> if<00:09:58.840> you<00:09:59.320> have<00:09:59.600> pretty\ndebugging if you have pretty\ndebugging if you have pretty deterministic<00:10:00.480> code,<00:10:01.280> where<00:10:01.440> time<00:10:01.760> travel<00:10:02.120> or\ndeterministic code, where time travel or\ndeterministic code, where time travel or I<00:10:02.480> shouldn't<00:10:02.680> say<00:10:02.760> timeline<00:10:03.120> debugging.<00:10:03.400> I\nI shouldn't say timeline debugging. I\nI shouldn't say timeline debugging. I should<00:10:03.600> say<00:10:03.720> time<00:10:04.120> travel<00:10:04.440> debugging.\nshould say time travel debugging.\nshould say time travel debugging. Um<00:10:06.240> which<00:10:06.400> are<00:10:06.520> different<00:10:06.840> things,<00:10:07.120> but\nUm which are different things, but\nUm which are different things, but So,<00:10:08.720> time<00:10:09.040> travel<00:10:09.280> debugging<00:10:09.600> people<00:10:10.040> will\nSo, time travel debugging people will\nSo, time travel debugging people will often<00:10:10.360> think<00:10:10.520> of<00:10:10.720> features<00:10:11.040> like<00:10:11.160> step\noften think of features like step\noften think of features like step backwards,<00:10:12.080> for<00:10:12.200> example.<00:10:12.640> Like,<00:10:13.120> you<00:10:13.200> know,\nbackwards, for example. Like, you know,\nbackwards, for example. Like, you know, if<00:10:13.400> you<00:10:13.480> step<00:10:13.720> forward,<00:10:14.640> you<00:10:14.720> might<00:10:14.840> also<00:10:15.040> want\nif you step forward, you might also want\nif you step forward, you might also want to<00:10:15.280> say<00:10:15.440> like,<00:10:15.640> \"Hey,<00:10:16.160> like<00:10:16.320> I<00:10:16.360> want<00:10:16.520> to<00:10:16.560> go\nto say like, \"Hey, like I want to go\nto say like, \"Hey, like I want to go back<00:10:17.040> to<00:10:17.120> this<00:10:17.560> to<00:10:17.680> the<00:10:17.760> point<00:10:18.000> in<00:10:18.080> time<00:10:18.480> in\nback to this to the point in time in\nback to this to the point in time in history<00:10:19.720> where<00:10:19.920> my<00:10:20.040> thread<00:10:20.320> was<00:10:20.440> here.\"<00:10:21.440> Um\nhistory where my thread was here.\" Um\nhistory where my thread was here.\" Um that<00:10:22.800> that<00:10:23.440> feature's<00:10:23.920> pretty<00:10:24.360> complicated\nthat that feature's pretty complicated\nthat that feature's pretty complicated and<00:10:24.920> not<00:10:25.160> supported<00:10:25.560> by<00:10:25.640> the<00:10:25.720> debugger<00:10:25.960> right\nand not supported by the debugger right\nand not supported by the debugger right now.<00:10:26.280> But,<00:10:26.440> you<00:10:26.520> can<00:10:26.640> rerun<00:10:27.040> code<00:10:27.240> by\nnow. But, you can rerun code by\nnow. But, you can rerun code by repositioning<00:10:27.960> your<00:10:28.080> thread.<00:10:28.440> Anyways,\nrepositioning your thread. Anyways,\nrepositioning your thread. Anyways, that's<00:10:28.880> kind<00:10:29.040> of<00:10:29.120> a<00:10:29.160> tangent.<00:10:29.960> We're<00:10:30.080> still\nthat's kind of a tangent. We're still\nthat's kind of a tangent. We're still not<00:10:30.560> We're<00:10:30.680> still<00:10:30.800> doing<00:10:31.080> basic<00:10:31.400> usage<00:10:31.720> stuff.\nnot We're still doing basic usage stuff.\nnot We're still doing basic usage stuff. So,<00:10:32.080> I<00:10:32.120> should<00:10:32.560> I<00:10:32.600> should<00:10:33.080> maybe<00:10:33.360> hold<00:10:33.600> off<00:10:33.760> on\nSo, I should I should maybe hold off on\nSo, I should I should maybe hold off on this<00:10:34.000> stuff,<00:10:34.200> but<00:10:34.760> Anyways,<00:10:35.120> so<00:10:35.200> I<00:10:35.240> can<00:10:35.400> step\nthis stuff, but Anyways, so I can step\nthis stuff, but Anyways, so I can step through<00:10:36.440> and<00:10:36.880> if<00:10:37.000> I<00:10:37.080> have<00:10:37.200> like<00:10:37.320> a<00:10:37.400> variable\nthrough and if I have like a variable\nthrough and if I have like a variable that's<00:10:38.400> in<00:10:38.560> my<00:10:38.680> code<00:10:39.160> and<00:10:39.280> I<00:10:39.320> want<00:10:39.480> to<00:10:39.560> see<00:10:39.800> what\nthat's in my code and I want to see what\nthat's in my code and I want to see what the<00:10:40.000> value<00:10:40.400> is,<00:10:40.600> I<00:10:40.680> can<00:10:40.839> just<00:10:41.040> hover<00:10:41.720> the<00:10:41.839> name\nthe value is, I can just hover the name\nthe value is, I can just hover the name of<00:10:42.040> that<00:10:42.160> variable<00:10:42.520> in<00:10:42.640> the<00:10:42.720> code.<00:10:43.680> Um\nof that variable in the code. Um\nof that variable in the code. Um actually,<00:10:44.360> let<00:10:44.480> me<00:10:45.000> um\nactually, let me um\nactually, let me um All<00:10:46.600> this<00:10:46.760> stuff<00:10:47.120> because<00:10:47.440> I<00:10:47.560> ran<00:10:47.800> this\nAll this stuff because I ran this\nAll this stuff because I ran this function<00:10:48.240> once<00:10:48.480> already,<00:10:48.800> all<00:10:48.960> this<00:10:49.280> all\nfunction once already, all this all\nfunction once already, all this all these<00:10:49.520> variables<00:10:49.920> are<00:10:49.960> going<00:10:50.200> to<00:10:50.280> be\nthese variables are going to be\nthese variables are going to be initialized<00:10:51.040> because<00:10:51.680> the<00:10:51.760> function<00:10:52.080> will\ninitialized because the function will\ninitialized because the function will have<00:10:52.360> run.<00:10:52.600> So,<00:10:52.720> what<00:10:52.839> I'll<00:10:52.960> do<00:10:53.680> is<00:10:53.800> I'm<00:10:53.880> going\nhave run. So, what I'll do is I'm going\nhave run. So, what I'll do is I'm going to<00:10:54.520> I'm<00:10:54.640> going<00:10:54.760> to<00:10:54.839> restart<00:10:55.200> the<00:10:55.280> program.<00:10:55.880> I'm\nto I'm going to restart the program. I'm\nto I'm going to restart the program. I'm going<00:10:56.120> to<00:10:56.160> put<00:10:56.320> a<00:10:56.360> breakpoint<00:10:56.920> right<00:10:57.080> here.\ngoing to put a breakpoint right here.\ngoing to put a breakpoint right here. So,<00:10:57.440> a<00:10:57.480> breakpoint<00:10:57.920> is<00:10:58.040> basically<00:10:58.360> saying<00:10:58.680> any\nSo, a breakpoint is basically saying any\nSo, a breakpoint is basically saying any thread<00:10:59.200> that<00:10:59.360> hits<00:10:59.600> this<00:10:59.800> spot<00:11:00.160> in<00:11:00.240> the<00:11:00.320> code,\nthread that hits this spot in the code,\nthread that hits this spot in the code, let's<00:11:01.760> just<00:11:01.920> stop<00:11:02.120> the<00:11:02.200> program,<00:11:02.640> right?\nlet's just stop the program, right?\nlet's just stop the program, right? And<00:11:04.480> uh<00:11:04.600> so,<00:11:05.200> the<00:11:05.280> debugger<00:11:05.600> will<00:11:05.760> pause<00:11:06.320> the\nAnd uh so, the debugger will pause the\nAnd uh so, the debugger will pause the entire<00:11:06.800> program<00:11:07.280> when<00:11:07.520> one<00:11:07.720> thread<00:11:07.960> hits<00:11:08.200> this\nentire program when one thread hits this\nentire program when one thread hits this position.<00:11:09.120> Now,<00:11:09.200> I'm<00:11:09.320> going<00:11:09.440> to<00:11:09.520> kill<00:11:09.800> the\nposition. Now, I'm going to kill the\nposition. Now, I'm going to kill the program<00:11:10.920> by<00:11:11.040> hitting<00:11:11.320> the<00:11:11.760> the<00:11:11.839> kill<00:11:12.120> all\nprogram by hitting the the kill all\nprogram by hitting the the kill all thing<00:11:13.000> up<00:11:13.120> here.\nthing up here.\nthing up here. Um<00:11:14.560> and<00:11:14.680> then<00:11:14.760> I'm<00:11:14.839> going<00:11:14.960> to<00:11:15.000> just<00:11:15.200> run<00:11:15.360> again.\nUm and then I'm going to just run again.\nUm and then I'm going to just run again. I<00:11:16.240> could<00:11:16.360> have<00:11:16.480> done<00:11:16.640> the<00:11:16.720> same<00:11:16.960> thing<00:11:17.160> by\nI could have done the same thing by\nI could have done the same thing by doing<00:11:17.680> restart.<00:11:18.520> Just<00:11:18.880> no<00:11:19.000> difference.\ndoing restart. Just no difference.\ndoing restart. Just no difference. Anyways,<00:11:20.680> once<00:11:20.880> I'm<00:11:21.000> here,\nAnyways, once I'm here,\nAnyways, once I'm here, if<00:11:22.400> I<00:11:22.480> have<00:11:22.640> one<00:11:22.800> of<00:11:22.880> these<00:11:23.000> variables<00:11:23.400> like\nif I have one of these variables like\nif I have one of these variables like this<00:11:23.680> basics<00:11:24.240> structure,<00:11:24.640> you<00:11:24.720> can<00:11:24.839> see<00:11:24.960> it's\nthis basics structure, you can see it's\nthis basics structure, you can see it's just<00:11:25.200> filled<00:11:25.400> with<00:11:25.560> garbage.<00:11:26.440> Um\njust filled with garbage. Um\njust filled with garbage. Um but<00:11:27.360> if<00:11:27.440> I<00:11:27.520> step<00:11:27.760> over<00:11:27.880> the<00:11:27.960> initialization,\nbut if I step over the initialization,\nbut if I step over the initialization, you'll<00:11:28.800> see<00:11:28.960> that<00:11:29.520> uh<00:11:29.800> the<00:11:29.839> debugger<00:11:30.160> will\nyou'll see that uh the debugger will\nyou'll see that uh the debugger will tell<00:11:30.400> me<00:11:30.520> what's<00:11:30.720> changed.\ntell me what's changed.\ntell me what's changed. And<00:11:33.080> I<00:11:33.120> can<00:11:33.280> see<00:11:34.160> that<00:11:34.360> see<00:11:34.480> the<00:11:34.560> new<00:11:34.680> values<00:11:35.040> of\nAnd I can see that see the new values of\nAnd I can see that see the new values of all<00:11:35.240> these<00:11:35.360> things<00:11:36.320> uh\nall these things uh\nall these things uh immediately.\nimmediately.\nimmediately. So,<00:11:39.080> I<00:11:39.160> can<00:11:39.280> do<00:11:39.400> that<00:11:39.600> with<00:11:39.760> pretty<00:11:39.960> much\nSo, I can do that with pretty much\nSo, I can do that with pretty much anything<00:11:40.440> in<00:11:41.000> in<00:11:41.160> here.<00:11:41.360> We<00:11:41.440> have<00:11:41.560> strings\nanything in in here. We have strings\nanything in in here. We have strings right<00:11:42.200> here.<00:11:43.000> We<00:11:43.080> have<00:11:43.240> longer<00:11:43.640> text.<00:11:44.760> Um<00:11:44.960> this\nright here. We have longer text. Um this\nright here. We have longer text. Um this is<00:11:45.240> a<00:11:45.280> wide<00:11:45.560> string,<00:11:45.800> so<00:11:45.960> each<00:11:46.200> character<00:11:46.680> is\nis a wide string, so each character is\nis a wide string, so each character is uh\nuh\nuh a<00:11:47.960> U16<00:11:48.560> instead<00:11:48.880> of<00:11:49.000> a<00:11:49.400> instead<00:11:49.640> of<00:11:49.840> just<00:11:50.080> one\na U16 instead of a instead of just one\na U16 instead of a instead of just one byte<00:11:50.600> like<00:11:50.760> the<00:11:51.000> it's<00:11:51.160> UTF-16<00:11:51.880> instead<00:11:52.080> of\nbyte like the it's UTF-16 instead of\nbyte like the it's UTF-16 instead of UTF-8.<00:11:53.200> Um<00:11:53.520> so,<00:11:53.640> we<00:11:53.680> can<00:11:53.800> visualize<00:11:54.160> that.<00:11:55.080> Um\nUTF-8. Um so, we can visualize that. Um\nUTF-8. Um so, we can visualize that. Um There's<00:11:56.120> a<00:11:56.160> bunch<00:11:56.360> of<00:11:56.440> like<00:11:56.840> evaluation<00:11:57.440> tests\nThere's a bunch of like evaluation tests\nThere's a bunch of like evaluation tests in<00:11:57.800> here.<00:11:58.040> I've<00:11:58.160> got<00:11:58.320> this<00:11:58.480> fixed<00:11:58.760> array<00:11:59.000> right\nin here. I've got this fixed array right\nin here. I've got this fixed array right here.\nhere.\nhere. Um\nUm\nUm and<00:12:02.720> then<00:12:03.240> count<00:12:03.560> member<00:12:03.840> like<00:12:04.040> the<00:12:04.160> it's<00:12:04.320> just\nand then count member like the it's just\nand then count member like the it's just this<00:12:04.600> structure.<00:12:05.400> The<00:12:05.440> other<00:12:05.560> thing<00:12:05.720> you<00:12:05.800> can\nthis structure. The other thing you can\nthis structure. The other thing you can do<00:12:05.960> is<00:12:06.040> evaluate<00:12:06.400> type<00:12:06.640> info.<00:12:06.960> So,<00:12:07.120> if<00:12:07.240> I<00:12:07.280> want\ndo is evaluate type info. So, if I want\ndo is evaluate type info. So, if I want to<00:12:07.480> look<00:12:07.600> at<00:12:07.840> what<00:12:08.040> this<00:12:08.200> type<00:12:08.480> is,<00:12:09.040> I<00:12:09.120> can<00:12:09.600> uh<00:12:10.000> I\nto look at what this type is, I can uh I\nto look at what this type is, I can uh I just<00:12:10.680> selected<00:12:11.080> this<00:12:11.200> text<00:12:11.480> and<00:12:11.560> hovered<00:12:11.840> the\njust selected this text and hovered the\njust selected this text and hovered the selected<00:12:12.320> text.<00:12:13.160> Uh<00:12:13.240> by<00:12:13.400> default,<00:12:13.760> if<00:12:13.840> you\nselected text. Uh by default, if you\nselected text. Uh by default, if you hover<00:12:14.160> types,<00:12:14.480> it<00:12:14.560> won't<00:12:14.760> show<00:12:14.920> it<00:12:15.000> cuz<00:12:15.120> it\nhover types, it won't show it cuz it\nhover types, it won't show it cuz it just<00:12:15.440> becomes<00:12:15.760> a<00:12:15.800> little<00:12:15.920> bit<00:12:16.040> too<00:12:16.160> noisy.\njust becomes a little bit too noisy.\njust becomes a little bit too noisy. But,<00:12:17.000> if<00:12:17.080> you<00:12:17.160> want<00:12:17.280> to<00:12:17.360> evaluate<00:12:17.760> type,<00:12:18.000> you\nBut, if you want to evaluate type, you\nBut, if you want to evaluate type, you can<00:12:18.520> you<00:12:18.600> can<00:12:18.920> select<00:12:19.240> the<00:12:19.320> text,<00:12:19.640> hover<00:12:19.880> it.\ncan you can select the text, hover it.\ncan you can select the text, hover it. And<00:12:21.240> then<00:12:21.360> here<00:12:21.520> you<00:12:21.640> can<00:12:21.760> see<00:12:21.880> the<00:12:22.000> type<00:12:22.200> info,\nAnd then here you can see the type info,\nAnd then here you can see the type info, right?<00:12:22.720> So,<00:12:22.800> you<00:12:22.920> can<00:12:23.040> see<00:12:23.200> like<00:12:24.040> um<00:12:24.800> these\nright? So, you can see like um these\nright? So, you can see like um these blue<00:12:25.240> lines,<00:12:25.600> by<00:12:25.680> the<00:12:25.760> way,<00:12:25.920> are<00:12:26.040> cache<00:12:26.360> line\nblue lines, by the way, are cache line\nblue lines, by the way, are cache line boundaries.<00:12:27.160> So,<00:12:27.240> you<00:12:27.320> can<00:12:27.440> see<00:12:27.600> like,<00:12:27.760> \"Hey,\nboundaries. So, you can see like, \"Hey,\nboundaries. So, you can see like, \"Hey, here's<00:12:28.120> my<00:12:28.280> array<00:12:28.560> of<00:12:28.720> pair<00:12:29.080> structures.<00:12:30.040> Each\nhere's my array of pair structures. Each\nhere's my array of pair structures. Each pair<00:12:30.400> structure<00:12:30.680> has<00:12:30.760> an<00:12:30.960> X<00:12:31.240> in<00:12:31.400> 32<00:12:31.840> and<00:12:31.920> a<00:12:31.960> Y\npair structure has an X in 32 and a Y\npair structure has an X in 32 and a Y float.\"<00:12:33.120> Um<00:12:33.280> and<00:12:33.360> it's<00:12:33.480> got<00:12:34.000> um<00:12:34.520> you<00:12:34.600> know,<00:12:35.040> 10\nfloat.\" Um and it's got um you know, 10\nfloat.\" Um and it's got um you know, 10 of<00:12:35.360> those<00:12:35.839> and<00:12:36.400> uh<00:12:36.560> right<00:12:36.760> here<00:12:36.920> is<00:12:37.000> another\nof those and uh right here is another\nof those and uh right here is another cache<00:12:37.480> line<00:12:37.640> boundary.<00:12:38.760> Um<00:12:39.160> and<00:12:39.280> then<00:12:39.400> we've\ncache line boundary. Um and then we've\ncache line boundary. Um and then we've got<00:12:39.680> the<00:12:39.800> in<00:12:39.920> 32<00:12:40.280> count<00:12:40.640> at<00:12:40.720> the<00:12:40.839> end,<00:12:41.040> right?\ngot the in 32 count at the end, right?\ngot the in 32 count at the end, right? So,<00:12:41.320> we<00:12:41.440> can<00:12:41.520> evaluate<00:12:41.839> type<00:12:42.040> info<00:12:42.240> that<00:12:42.400> way.\nSo, we can evaluate type info that way.\nSo, we can evaluate type info that way. Um\nUm\nUm and\nand\nand uh\nuh\nuh that's<00:12:48.320> like<00:12:48.640> that's<00:12:48.839> like<00:12:49.000> super<00:12:49.320> basic\nthat's like that's like super basic\nthat's like that's like super basic early<00:12:50.520> usage.<00:12:51.000> So,\nearly usage. So,\nearly usage. So, um<00:12:52.680> now<00:12:53.000> I<00:12:53.040> can<00:12:53.160> focus<00:12:53.440> on<00:12:53.520> the<00:12:53.600> watch<00:12:53.839> window.\num now I can focus on the watch window.\num now I can focus on the watch window. So,<00:12:54.760> if<00:12:54.880> I<00:12:54.920> wanted<00:12:55.240> to<00:12:55.480> like<00:12:55.680> hovering<00:12:56.040> is\nSo, if I wanted to like hovering is\nSo, if I wanted to like hovering is nice,<00:12:56.760> but<00:12:56.880> sometimes<00:12:57.280> you<00:12:57.400> want<00:12:57.560> to<00:12:57.680> like\nnice, but sometimes you want to like\nnice, but sometimes you want to like actually<00:12:58.240> just<00:12:58.440> have<00:12:58.600> some<00:12:58.760> expressions<00:12:59.240> in\nactually just have some expressions in\nactually just have some expressions in here.<00:13:00.000> Um\nhere. Um\nhere. Um so,<00:13:01.240> in<00:13:01.360> the<00:13:01.440> watch<00:13:01.600> window,<00:13:01.839> I<00:13:01.880> can<00:13:02.080> add<00:13:02.280> new\nso, in the watch window, I can add new\nso, in the watch window, I can add new expressions<00:13:03.160> uh<00:13:03.320> just<00:13:03.480> by<00:13:03.600> typing<00:13:04.080> in<00:13:04.200> this\nexpressions uh just by typing in this\nexpressions uh just by typing in this little<00:13:04.640> expression<00:13:05.040> slot.<00:13:05.600> I<00:13:05.680> can<00:13:05.839> hit<00:13:06.080> F2<00:13:06.480> to\nlittle expression slot. I can hit F2 to\nlittle expression slot. I can hit F2 to edit<00:13:06.800> it,<00:13:06.920> or<00:13:07.000> I<00:13:07.040> can<00:13:07.200> double<00:13:07.440> click,<00:13:07.760> or<00:13:07.800> I<00:13:07.880> can\nedit it, or I can double click, or I can\nedit it, or I can double click, or I can just<00:13:08.080> start<00:13:08.280> typing,<00:13:08.600> too.<00:13:08.800> So,<00:13:08.920> I<00:13:08.960> can<00:13:09.080> do<00:13:09.920> um\njust start typing, too. So, I can do um\njust start typing, too. So, I can do um if<00:13:10.839> I<00:13:10.880> want<00:13:11.040> to<00:13:11.080> evaluate<00:13:11.440> basic<00:13:11.800> structure,\nif I want to evaluate basic structure,\nif I want to evaluate basic structure, um\num\num this<00:13:14.600> is<00:13:14.760> just<00:13:15.400> uh<00:13:15.640> I<00:13:15.720> can<00:13:15.839> put<00:13:16.000> this<00:13:16.200> in<00:13:16.400> and<00:13:16.680> it\nthis is just uh I can put this in and it\nthis is just uh I can put this in and it expands<00:13:17.240> just<00:13:17.480> like<00:13:17.680> what<00:13:17.800> the<00:13:17.880> hover\nexpands just like what the hover\nexpands just like what the hover evaluation<00:13:18.680> would<00:13:18.760> have<00:13:18.880> done.<00:13:19.720> Um\nevaluation would have done. Um\nevaluation would have done. Um uh\nuh\nuh Let's<00:13:22.880> see<00:13:22.960> what<00:13:23.080> else.<00:13:23.480> I<00:13:23.560> can<00:13:23.680> put<00:13:23.839> string<00:13:24.160> in\nLet's see what else. I can put string in\nLet's see what else. I can put string in here.<00:13:24.839> I<00:13:24.880> can<00:13:25.000> put<00:13:25.200> longer<00:13:25.600> text<00:13:26.040> in<00:13:26.160> here.<00:13:27.040> Um\nUh<00:13:29.920> what<00:13:30.080> else?<00:13:30.560> Let's<00:13:30.720> see.\nUh what else? Let's see.\nUh what else? Let's see. Um\nUm\nUm So<00:13:33.160> that's<00:13:33.360> like<00:13:33.840> that's<00:13:34.040> a<00:13:34.080> few<00:13:34.640> kinds<00:13:34.920> of\nSo that's like that's a few kinds of\nSo that's like that's a few kinds of evaluation<00:13:35.520> things.<00:13:35.800> Now<00:13:35.920> something<00:13:36.240> that's\nevaluation things. Now something that's\nevaluation things. Now something that's unique<00:13:36.680> about<00:13:36.880> the<00:13:36.960> rad<00:13:37.120> debugger<00:13:37.520> is<00:13:37.680> that\nunique about the rad debugger is that\nunique about the rad debugger is that all<00:13:38.440> those<00:13:38.720> UIs<00:13:39.040> I<00:13:39.120> showed<00:13:39.320> before<00:13:39.680> like\nall those UIs I showed before like\nall those UIs I showed before like targets,<00:13:41.200> there's<00:13:41.360> also<00:13:41.600> UIs<00:13:41.880> like\ntargets, there's also UIs like\ntargets, there's also UIs like breakpoints.\nbreakpoints.\nbreakpoints. Um<00:13:44.360> these<00:13:44.480> are<00:13:44.560> some<00:13:44.720> breakpoints<00:13:45.280> that<00:13:45.440> I\nUm these are some breakpoints that I\nUm these are some breakpoints that I have.<00:13:46.040> Step<00:13:46.280> like<00:13:46.400> here's<00:13:46.560> the<00:13:46.640> one<00:13:46.760> I<00:13:46.800> just\nhave. Step like here's the one I just\nhave. Step like here's the one I just set,<00:13:47.600> which<00:13:47.800> is<00:13:48.520> right<00:13:48.720> here.\nset, which is right here.\nset, which is right here. Um<00:13:51.960> all<00:13:52.200> of<00:13:52.280> these<00:13:52.520> UIs<00:13:53.080> are<00:13:53.280> actually<00:13:54.120> uh<00:13:54.560> all\nUm all of these UIs are actually uh all\nUm all of these UIs are actually uh all I<00:13:54.920> guess<00:13:55.120> I'll<00:13:55.200> just<00:13:55.400> spoil<00:13:55.760> it.<00:13:55.920> These<00:13:56.480> are\nI guess I'll just spoil it. These are\nI guess I'll just spoil it. These are all<00:13:56.800> watch<00:13:57.040> windows.<00:13:57.800> Um<00:13:58.480> so<00:13:59.200> so<00:13:59.400> basically\nall watch windows. Um so so basically\nall watch windows. Um so so basically like<00:14:00.040> if<00:14:00.160> you<00:14:00.240> didn't<00:14:00.400> want<00:14:00.520> to<00:14:00.600> use<00:14:00.720> these\nlike if you didn't want to use these\nlike if you didn't want to use these tabs<00:14:01.160> at<00:14:01.280> all,\ntabs at all,\ntabs at all, you<00:14:02.680> could<00:14:02.800> just<00:14:02.960> say,<00:14:03.120> \"Hey,<00:14:03.280> I<00:14:03.360> want<00:14:03.480> to<00:14:03.520> look\nyou could just say, \"Hey, I want to look\nyou could just say, \"Hey, I want to look at<00:14:03.800> all<00:14:03.920> the<00:14:04.000> targets\nat all the targets\nat all the targets in<00:14:05.600> my<00:14:05.720> watch<00:14:05.960> window.\"<00:14:06.240> And<00:14:06.360> if<00:14:06.440> I<00:14:06.480> expand\nin my watch window.\" And if I expand\nin my watch window.\" And if I expand that,<00:14:07.040> then<00:14:07.200> I<00:14:07.240> just<00:14:07.480> see<00:14:07.600> something<00:14:07.880> that\nthat, then I just see something that\nthat, then I just see something that looks<00:14:08.600> quite<00:14:08.880> a<00:14:08.920> lot<00:14:09.320> like<00:14:09.640> the<00:14:09.760> targets<00:14:10.200> tab,\nlooks quite a lot like the targets tab,\nlooks quite a lot like the targets tab, right?<00:14:11.760> I<00:14:11.800> can<00:14:11.920> just<00:14:12.040> start<00:14:12.160> evaluating\nright? I can just start evaluating\nright? I can just start evaluating things<00:14:12.800> like<00:14:12.920> that.<00:14:13.200> If<00:14:13.320> I'm<00:14:13.440> like,<00:14:13.560> \"Hey,<00:14:13.680> I\nthings like that. If I'm like, \"Hey, I\nthings like that. If I'm like, \"Hey, I want<00:14:13.840> to<00:14:13.920> see<00:14:14.000> all<00:14:14.080> my<00:14:14.200> breakpoints.\"\nwant to see all my breakpoints.\"\nwant to see all my breakpoints.\" Uh<00:14:15.960> that<00:14:16.080> can<00:14:16.200> also<00:14:16.440> just<00:14:16.600> be<00:14:16.720> in<00:14:16.840> here.\nUh that can also just be in here.\nUh that can also just be in here. Um\nUm\nUm And<00:14:19.760> so<00:14:19.880> I<00:14:19.960> don't<00:14:20.440> necessarily<00:14:20.920> need<00:14:21.160> these\nAnd so I don't necessarily need these\nAnd so I don't necessarily need these things.<00:14:21.720> And<00:14:21.880> let<00:14:22.160> you<00:14:22.240> know,<00:14:22.360> let's<00:14:22.520> say<00:14:22.640> for\nthings. And let you know, let's say for\nthings. And let you know, let's say for example<00:14:23.200> that<00:14:23.360> like<00:14:24.160> you<00:14:24.240> know,<00:14:24.400> I<00:14:24.480> don't<00:14:24.640> want\nexample that like you know, I don't want\nexample that like you know, I don't want to<00:14:24.880> hover<00:14:25.200> my<00:14:25.360> thread<00:14:25.720> instruction<00:14:26.120> pointer\nto hover my thread instruction pointer\nto hover my thread instruction pointer every<00:14:26.640> time<00:14:26.840> I<00:14:26.880> want<00:14:27.000> to<00:14:27.080> see<00:14:27.160> the<00:14:27.240> call<00:14:27.440> stack.\nevery time I want to see the call stack.\nevery time I want to see the call stack. Um\nUm\nUm well,<00:14:30.000> like<00:14:30.440> what<00:14:30.600> can<00:14:30.720> I<00:14:30.800> do<00:14:31.120> to<00:14:31.240> start\nwell, like what can I do to start\nwell, like what can I do to start inspecting<00:14:32.600> the<00:14:32.720> state<00:14:33.040> of<00:14:33.160> a<00:14:33.200> particular\ninspecting the state of a particular\ninspecting the state of a particular thread?<00:14:34.040> Well,<00:14:34.440> I<00:14:34.520> know<00:14:34.680> I'm<00:14:34.760> debugging<00:14:35.120> a\nthread? Well, I know I'm debugging a\nthread? Well, I know I'm debugging a process.<00:14:35.720> So<00:14:35.800> let<00:14:35.920> me<00:14:36.040> let<00:14:36.200> me<00:14:36.480> maybe<00:14:36.720> look<00:14:36.880> at\nprocess. So let me let me maybe look at\nprocess. So let me let me maybe look at all<00:14:37.040> the<00:14:37.120> processes<00:14:37.680> I<00:14:37.720> have.<00:14:38.200> Okay,<00:14:38.440> so\nall the processes I have. Okay, so\nall the processes I have. Okay, so there's<00:14:38.800> all<00:14:38.839> the<00:14:38.920> processes<00:14:39.400> that<00:14:39.480> I'm\nthere's all the processes that I'm\nthere's all the processes that I'm attached<00:14:39.920> to.\nattached to.\nattached to. Um<00:14:41.400> if<00:14:41.520> I<00:14:41.560> expand<00:14:41.960> that,<00:14:42.120> it's<00:14:42.240> like,<00:14:42.400> \"Oh,\nUm if I expand that, it's like, \"Oh,\nUm if I expand that, it's like, \"Oh, I've<00:14:42.640> got<00:14:42.880> the<00:14:43.240> I've<00:14:43.360> got<00:14:43.560> threads<00:14:43.920> that<00:14:44.080> are\nI've got the I've got threads that are\nI've got the I've got threads that are in<00:14:44.520> this<00:14:44.680> process.\"<00:14:45.360> Uh<00:14:45.480> we<00:14:45.600> have<00:14:45.720> three<00:14:46.040> of\nin this process.\" Uh we have three of\nin this process.\" Uh we have three of these.<00:14:46.360> These<00:14:46.520> are<00:14:46.600> just<00:14:46.800> spawned.<00:14:47.400> The<00:14:47.520> these\nthese. These are just spawned. The these\nthese. These are just spawned. The these are<00:14:47.839> not<00:14:48.360> um\nare not um\nare not um these<00:14:49.880> are<00:14:49.920> not<00:14:50.080> spawned<00:14:50.360> by<00:14:50.640> this<00:14:50.880> program.\nthese are not spawned by this program.\nthese are not spawned by this program. They're<00:14:51.320> spawned<00:14:51.640> by<00:14:51.760> the<00:14:52.480> by<00:14:52.720> the<00:14:52.880> operating\nThey're spawned by the by the operating\nThey're spawned by the by the operating system<00:14:53.880> uh<00:14:54.360> for<00:14:55.040> for<00:14:55.200> reasons<00:14:55.520> that<00:14:55.640> are<00:14:56.000> uh\nsystem uh for for reasons that are uh\nsystem uh for for reasons that are uh you<00:14:56.240> could<00:14:56.360> probably<00:14:56.720> find<00:14:56.960> out,<00:14:57.160> but<00:14:57.360> we\nyou could probably find out, but we\nyou could probably find out, but we don't<00:14:57.960> know.\ndon't know.\ndon't know. Um\nUm\nUm but<00:15:00.360> anyways,<00:15:00.680> here's<00:15:00.880> my<00:15:01.040> thread.<00:15:01.320> I<00:15:01.360> can\nbut anyways, here's my thread. I can\nbut anyways, here's my thread. I can expand<00:15:01.880> it<00:15:02.320> and<00:15:02.400> it's<00:15:02.520> like,<00:15:02.680> \"Oh,<00:15:03.080> there's<00:15:03.280> my\nexpand it and it's like, \"Oh, there's my\nexpand it and it's like, \"Oh, there's my call<00:15:03.560> stack.\"<00:15:04.160> That's<00:15:04.320> just<00:15:04.560> in<00:15:04.680> here<00:15:05.480> um\ncall stack.\" That's just in here um\ncall stack.\" That's just in here um inside<00:15:06.520> of<00:15:06.600> this<00:15:06.760> process<00:15:07.160> tree.<00:15:07.880> Now<00:15:08.000> if<00:15:08.160> I\ninside of this process tree. Now if I\ninside of this process tree. Now if I wanted<00:15:08.480> to<00:15:08.560> like\nwanted to like\nwanted to like not<00:15:09.800> bother<00:15:10.560> expanding<00:15:11.320> that<00:15:11.480> every<00:15:11.600> time,<00:15:11.839> I\nnot bother expanding that every time, I\nnot bother expanding that every time, I could<00:15:12.000> also<00:15:12.200> just<00:15:12.360> do<00:15:12.480> like,<00:15:12.960> \"Okay,<00:15:13.320> well,\ncould also just do like, \"Okay, well,\ncould also just do like, \"Okay, well, can<00:15:13.640> I<00:15:13.680> do<00:15:13.839> threads?\"<00:15:14.400> Or<00:15:14.839> maybe<00:15:15.000> I<00:15:15.040> can<00:15:15.120> do\ncan I do threads?\" Or maybe I can do\ncan I do threads?\" Or maybe I can do processes<00:15:16.520> at<00:15:16.720> zero<00:15:17.440> dot<00:15:17.680> threads<00:15:18.920> um<00:15:19.280> at\nprocesses at zero dot threads um at\nprocesses at zero dot threads um at zero.<00:15:20.400> And<00:15:20.520> hey,<00:15:20.680> there's<00:15:20.880> my<00:15:21.000> mule<00:15:21.240> main.<00:15:21.720> And\nzero. And hey, there's my mule main. And\nzero. And hey, there's my mule main. And then<00:15:22.000> like<00:15:22.200> let's<00:15:22.400> do<00:15:22.520> like<00:15:22.680> dot<00:15:22.960> call<00:15:23.240> stack.\nthen like let's do like dot call stack.\nthen like let's do like dot call stack. There<00:15:24.760> we<00:15:24.840> go.\nThere we go.\nThere we go. Um<00:15:26.680> now<00:15:26.800> I<00:15:26.880> can<00:15:27.000> just<00:15:27.120> evaluate<00:15:27.400> the<00:15:27.480> call\nUm now I can just evaluate the call\nUm now I can just evaluate the call stack.<00:15:28.360> There's<00:15:28.760> a<00:15:29.440> a<00:15:29.520> fast<00:15:29.760> path<00:15:30.000> I<00:15:30.040> can<00:15:30.160> do\nstack. There's a a fast path I can do\nstack. There's a a fast path I can do for<00:15:30.400> that<00:15:30.680> is<00:15:30.800> just<00:15:31.040> current<00:15:31.360> thread<00:15:31.920> dot<00:15:32.120> call\nfor that is just current thread dot call\nfor that is just current thread dot call stack<00:15:32.920> or<00:15:33.040> even<00:15:33.200> more<00:15:33.360> succinctly<00:15:34.400> call\nstack or even more succinctly call\nstack or even more succinctly call stack.<00:15:35.400> Um<00:15:35.800> which<00:15:36.040> is<00:15:36.560> All<00:15:36.720> of<00:15:36.800> these<00:15:36.960> things\nstack. Um which is All of these things\nstack. Um which is All of these things mean<00:15:37.360> the<00:15:37.440> same<00:15:37.640> thing.\nmean the same thing.\nmean the same thing. And<00:15:38.800> sure<00:15:39.000> enough,<00:15:39.320> if<00:15:39.480> I<00:15:39.560> open<00:15:39.840> up<00:15:40.320> a<00:15:40.400> call\nAnd sure enough, if I open up a call\nAnd sure enough, if I open up a call stack<00:15:40.920> tab,<00:15:41.160> which<00:15:41.320> is<00:15:41.560> this<00:15:41.720> is<00:15:41.800> just<00:15:42.000> a<00:15:42.040> fast\nstack tab, which is this is just a fast\nstack tab, which is this is just a fast path,<00:15:42.680> right?<00:15:42.880> So<00:15:42.960> this<00:15:43.120> is<00:15:43.240> like\npath, right? So this is like\npath, right? So this is like um<00:15:44.600> this<00:15:44.720> is<00:15:44.840> like<00:15:45.160> very<00:15:45.440> similar<00:15:45.680> to<00:15:45.760> what\num this is like very similar to what\num this is like very similar to what you'd<00:15:46.040> see<00:15:46.160> in<00:15:46.240> Visual<00:15:46.520> Studio,<00:15:46.920> for<00:15:47.040> example.\nyou'd see in Visual Studio, for example.\nyou'd see in Visual Studio, for example. Um\nUm\nUm you<00:15:49.280> can<00:15:49.400> see<00:15:49.520> your<00:15:49.640> call<00:15:49.800> stack<00:15:50.080> here.<00:15:50.560> If<00:15:50.800> I\nyou can see your call stack here. If I\nyou can see your call stack here. If I actually<00:15:51.400> uh<00:15:51.840> go<00:15:52.000> to<00:15:52.080> this<00:15:52.240> tab<00:15:52.520> and<00:15:52.640> open<00:15:52.840> up\nactually uh go to this tab and open up\nactually uh go to this tab and open up the<00:15:53.120> options<00:15:53.600> for<00:15:53.720> this<00:15:53.880> tab,<00:15:54.360> you'll<00:15:54.560> see\nthe options for this tab, you'll see\nthe options for this tab, you'll see that<00:15:54.920> the<00:15:55.040> expression<00:15:56.000> that's<00:15:56.200> used<00:15:56.480> to\nthat the expression that's used to\nthat the expression that's used to create<00:15:57.000> this<00:15:57.480> tab<00:15:57.760> info<00:15:58.720> is<00:15:59.080> query<00:15:59.680> colon<00:16:00.160> call\ncreate this tab info is query colon call\ncreate this tab info is query colon call stack.<00:16:01.080> Now<00:16:01.320> the<00:16:01.400> query<00:16:01.720> colon<00:16:02.000> thing<00:16:02.160> is<00:16:02.280> just\nstack. Now the query colon thing is just\nstack. Now the query colon thing is just a<00:16:02.520> disambiguator.<00:16:03.360> This<00:16:03.560> is<00:16:03.640> just<00:16:03.840> in<00:16:03.920> case<00:16:04.440> if\na disambiguator. This is just in case if\na disambiguator. This is just in case if you<00:16:04.640> have<00:16:04.800> a<00:16:04.840> local<00:16:05.080> variable<00:16:05.480> called<00:16:05.800> call\nyou have a local variable called call\nyou have a local variable called call stack,<00:16:06.760> this<00:16:07.040> is<00:16:07.320> basically<00:16:07.720> telling<00:16:07.960> the\nstack, this is basically telling the\nstack, this is basically telling the debugger's<00:16:08.400> evaluation<00:16:08.920> system,<00:16:09.640> \"Hey,<00:16:10.280> I'm\ndebugger's evaluation system, \"Hey, I'm\ndebugger's evaluation system, \"Hey, I'm just<00:16:10.720> doing<00:16:10.920> a<00:16:10.960> debugger<00:16:11.320> query.<00:16:11.800> I<00:16:11.920> don't\njust doing a debugger query. I don't\njust doing a debugger query. I don't want<00:16:12.360> you<00:16:12.440> to<00:16:12.600> resolve<00:16:13.000> this<00:16:13.200> as<00:16:13.320> a<00:16:13.360> local\nwant you to resolve this as a local\nwant you to resolve this as a local variable,<00:16:14.000> right?\"<00:16:14.200> So<00:16:14.360> just<00:16:14.960> unambiguously\nvariable, right?\" So just unambiguously\nvariable, right?\" So just unambiguously referring<00:16:16.000> to<00:16:16.280> the<00:16:16.800> to<00:16:16.920> the<00:16:17.000> current<00:16:17.320> thread's\nreferring to the to the current thread's\nreferring to the to the current thread's call<00:16:17.800> stack,<00:16:18.080> basically.\ncall stack, basically.\ncall stack, basically. So<00:16:19.680> anyway,<00:16:20.000> it's<00:16:20.080> like<00:16:20.360> that's<00:16:20.600> just<00:16:20.760> all<00:16:20.880> the\nSo anyway, it's like that's just all the\nSo anyway, it's like that's just all the call<00:16:21.200> stack<00:16:22.240> tab<00:16:22.600> is.<00:16:23.040> And<00:16:23.160> sure<00:16:23.320> enough,<00:16:23.520> if<00:16:23.680> I\ncall stack tab is. And sure enough, if I\ncall stack tab is. And sure enough, if I open<00:16:23.960> up<00:16:24.080> like<00:16:24.480> the<00:16:24.600> targets<00:16:25.000> view,<00:16:25.920> query\nopen up like the targets view, query\nopen up like the targets view, query targets,\ntargets,\ntargets, query<00:16:29.120> breakpoints,\nquery breakpoints,\nquery breakpoints, uh\nuh\nuh I<00:16:32.680> don't<00:16:32.800> know.<00:16:33.280> That's<00:16:33.640> like\nI don't know. That's like\nI don't know. That's like >> It's<00:16:34.440> good<00:16:34.720> because<00:16:35.040> like<00:16:35.360> already<00:16:35.800> people\n>> It's good because like already people\n>> It's good because like already people three<00:16:36.880> separate<00:16:37.280> people<00:16:37.720> at<00:16:37.839> the<00:16:37.960> same<00:16:38.360> time\nthree separate people at the same time\nthree separate people at the same time asked<00:16:39.320> like,<00:16:39.480> \"What<00:16:39.680> if<00:16:39.839> you<00:16:40.000> have<00:16:40.320> a<00:16:40.400> variable\nasked like, \"What if you have a variable\nasked like, \"What if you have a variable named<00:16:41.520> targets<00:16:42.160> or<00:16:42.440> breakpoints?\"\nnamed targets or breakpoints?\"\nnamed targets or breakpoints?\" >> Yes.<00:16:43.600> Yes.<00:16:43.880> Yes.<00:16:44.120> Yes.<00:16:44.440> Of<00:16:44.560> course.<00:16:44.920> Yeah.\n>> Yes. Yes. Yes. Yes. Of course. Yeah.\n>> Yes. Yes. Yes. Yes. Of course. Yeah. Um<00:16:46.360> so<00:16:46.560> that's<00:16:46.920> that's<00:16:47.560> uh<00:16:47.760> that's<00:16:48.000> like\nUm so that's that's uh that's like\nUm so that's that's uh that's like interesting<00:16:49.960> thing<00:16:50.480> number<00:16:50.720> one.<00:16:50.960> So<00:16:51.040> that's\ninteresting thing number one. So that's\ninteresting thing number one. So that's some<00:16:51.320> basic<00:16:51.640> usage<00:16:52.120> and<00:16:52.280> showing<00:16:53.040> kind<00:16:53.200> of<00:16:53.280> how\nsome basic usage and showing kind of how\nsome basic usage and showing kind of how all<00:16:53.560> these<00:16:53.760> views<00:16:54.040> are<00:16:54.160> really<00:16:54.400> just<00:16:54.640> all\nall these views are really just all\nall these views are really just all different<00:16:55.160> versions<00:16:55.480> of<00:16:55.560> the<00:16:55.640> same<00:16:55.880> thing.<00:16:56.640> So\ndifferent versions of the same thing. So\ndifferent versions of the same thing. So another<00:16:57.000> thing<00:16:57.200> that<00:16:57.320> we<00:16:57.440> can<00:16:57.560> do,<00:16:57.800> so<00:16:57.920> we<00:16:58.040> have\nanother thing that we can do, so we have\nanother thing that we can do, so we have I<00:16:58.839> showed<00:16:59.080> breakpoints<00:16:59.520> already.<00:16:59.880> What<00:17:00.000> I<00:17:00.080> can\nI showed breakpoints already. What I can\nI showed breakpoints already. What I can do<00:17:00.560> is<00:17:01.320> um\ndo is um\ndo is um I<00:17:01.960> can<00:17:02.080> also<00:17:02.240> show<00:17:02.400> some<00:17:02.720> better<00:17:03.160> of<00:17:03.520> uh\nI can also show some better of uh\nI can also show some better of uh visualization<00:17:04.959> stuff.\nvisualization stuff.\nvisualization stuff. So<00:17:06.640> if<00:17:06.760> I<00:17:06.839> go<00:17:07.000> to<00:17:07.079> like<00:17:07.600> longer<00:17:08.040> text,<00:17:08.560> for\nSo if I go to like longer text, for\nSo if I go to like longer text, for example,<00:17:09.079> that<00:17:09.240> variable<00:17:09.680> up<00:17:09.760> here<00:17:09.959> that's\nexample, that variable up here that's\nexample, that variable up here that's just<00:17:10.280> a<00:17:10.319> big<00:17:10.920> string.<00:17:11.560> If<00:17:11.680> you're<00:17:11.760> trying<00:17:11.959> to\njust a big string. If you're trying to\njust a big string. If you're trying to like<00:17:12.199> look<00:17:12.360> at<00:17:12.480> this<00:17:12.680> text<00:17:12.959> and<00:17:13.040> like<00:17:13.640> um<00:17:14.120> I<00:17:14.199> In\nlike look at this text and like um I In\nlike look at this text and like um I In this<00:17:14.480> case<00:17:14.640> it's<00:17:14.800> short<00:17:15.040> enough<00:17:15.240> that<00:17:15.360> you<00:17:15.400> can\nthis case it's short enough that you can\nthis case it's short enough that you can actually<00:17:15.760> see<00:17:15.959> it,<00:17:16.160> but<00:17:16.520> uh<00:17:16.640> just<00:17:16.880> when<00:17:17.040> I\nactually see it, but uh just when I\nactually see it, but uh just when I hover.<00:17:17.839> But<00:17:17.959> if,<00:17:18.319> you<00:17:18.400> know,<00:17:18.560> like<00:17:18.880> looking<00:17:19.199> at\nhover. But if, you know, like looking at\nhover. But if, you know, like looking at the<00:17:19.400> string<00:17:19.680> this<00:17:19.880> way<00:17:20.720> is<00:17:20.880> not<00:17:21.040> necessarily\nthe string this way is not necessarily\nthe string this way is not necessarily what<00:17:21.800> you<00:17:21.920> want,<00:17:22.160> especially<00:17:22.520> like<00:17:22.720> it<00:17:22.880> has\nwhat you want, especially like it has\nwhat you want, especially like it has some<00:17:23.240> new<00:17:23.400> line<00:17:23.640> characters<00:17:24.120> in<00:17:24.240> there.<00:17:24.520> Like\nsome new line characters in there. Like\nsome new line characters in there. Like maybe<00:17:24.920> I<00:17:24.959> don't<00:17:25.199> want<00:17:25.360> the<00:17:25.439> single<00:17:25.760> line<00:17:26.560> um\nmaybe I don't want the single line um\nmaybe I don't want the single line um visualization<00:17:27.520> here.<00:17:28.160> What<00:17:28.280> I<00:17:28.319> can<00:17:28.439> actually\nvisualization here. What I can actually\nvisualization here. What I can actually do<00:17:29.000> is<00:17:29.360> uh\ndo is uh\ndo is uh use<00:17:30.520> uh<00:17:30.760> a<00:17:30.840> view<00:17:31.480> as\nuse uh a view as\nuse uh a view as in<00:17:32.760> in<00:17:33.000> the<00:17:33.200> Rad<00:17:33.360> Debugger's<00:17:33.720> parlance.\nin in the Rad Debugger's parlance.\nin in the Rad Debugger's parlance. And<00:17:35.240> I<00:17:35.320> can<00:17:35.440> just<00:17:35.560> say,<00:17:35.720> \"Hey,<00:17:35.880> I<00:17:35.960> want<00:17:36.120> to\nAnd I can just say, \"Hey, I want to\nAnd I can just say, \"Hey, I want to visualize<00:17:36.560> this<00:17:36.680> as<00:17:36.840> text.\"\nvisualize this as text.\"\nvisualize this as text.\" Um<00:17:38.360> and<00:17:38.480> here<00:17:38.680> I<00:17:38.720> can<00:17:38.880> put<00:17:39.040> in<00:17:39.160> a<00:17:39.200> bunch<00:17:39.400> of\nUm and here I can put in a bunch of\nUm and here I can put in a bunch of different<00:17:39.680> parameters.<00:17:40.120> So,<00:17:40.200> the<00:17:40.280> first\ndifferent parameters. So, the first\ndifferent parameters. So, the first thing<00:17:40.640> is<00:17:40.760> just<00:17:40.920> the<00:17:41.000> expression<00:17:41.600> to<00:17:41.720> describe\nthing is just the expression to describe\nthing is just the expression to describe whatever<00:17:43.120> text<00:17:43.840> I<00:17:43.960> would<00:17:44.120> like<00:17:44.440> like<00:17:44.640> whatever\nwhatever text I would like like whatever\nwhatever text I would like like whatever expression<00:17:45.480> that<00:17:45.600> will<00:17:45.760> refer<00:17:46.120> me<00:17:46.320> to<00:17:46.480> the\nexpression that will refer me to the\nexpression that will refer me to the text<00:17:46.800> that<00:17:46.920> I<00:17:46.960> want<00:17:47.200> to<00:17:47.240> visualize.<00:17:47.760> Like<00:17:47.920> to\ntext that I want to visualize. Like to\ntext that I want to visualize. Like to the<00:17:48.120> data<00:17:48.400> that<00:17:48.520> I<00:17:48.560> want<00:17:48.680> to<00:17:48.760> visualize<00:17:49.040> as\nthe data that I want to visualize as\nthe data that I want to visualize as text.<00:17:49.960> I<00:17:50.000> put<00:17:50.200> that<00:17:50.360> here.<00:17:51.120> Um<00:17:51.320> I<00:17:51.360> can<00:17:51.480> also\ntext. I put that here. Um I can also\ntext. I put that here. Um I can also supply<00:17:52.040> like<00:17:52.240> a<00:17:52.320> language.<00:17:53.160> So,<00:17:54.080> I<00:17:54.160> mean,<00:17:54.400> I\nsupply like a language. So, I mean, I\nsupply like a language. So, I mean, I don't<00:17:54.600> know<00:17:54.720> why<00:17:54.920> I<00:17:54.960> would<00:17:55.080> do<00:17:55.240> that<00:17:55.400> for<00:17:55.520> this\ndon't know why I would do that for this\ndon't know why I would do that for this longer<00:17:56.000> text<00:17:56.280> thing.<00:17:56.520> So,<00:17:56.880> you<00:17:56.960> know,<00:17:57.200> but\nlonger text thing. So, you know, but\nlonger text thing. So, you know, but this<00:17:57.840> is<00:17:57.920> optional.<00:17:58.880> Um<00:17:59.360> which<00:17:59.520> it<00:17:59.600> doesn't\nthis is optional. Um which it doesn't\nthis is optional. Um which it doesn't say<00:17:59.960> it's<00:18:00.120> optional.<00:18:00.640> It<00:18:00.760> should,<00:18:01.000> but\nsay it's optional. It should, but\nsay it's optional. It should, but whatever.<00:18:02.200> And<00:18:02.280> then<00:18:02.360> I<00:18:02.400> can<00:18:02.520> also<00:18:02.960> determine\nwhatever. And then I can also determine\nwhatever. And then I can also determine whether<00:18:03.880> or<00:18:04.000> not<00:18:04.200> line<00:18:04.360> numbers<00:18:04.640> are<00:18:04.720> shown.\nwhether or not line numbers are shown.\nwhether or not line numbers are shown. But<00:18:06.560> okay,<00:18:06.760> like<00:18:06.960> let<00:18:07.080> me<00:18:07.160> just<00:18:07.600> let<00:18:07.680> me<00:18:07.760> just\nBut okay, like let me just let me just\nBut okay, like let me just let me just do<00:18:08.600> just<00:18:09.000> text<00:18:10.040> uh<00:18:10.200> the<00:18:10.320> text<00:18:10.600> view<00:18:10.920> of<00:18:11.120> this\ndo just text uh the text view of this\ndo just text uh the text view of this longer<00:18:11.600> text<00:18:11.840> expression.<00:18:12.560> If<00:18:12.680> I<00:18:12.720> expand\nlonger text expression. If I expand\nlonger text expression. If I expand this,<00:18:13.320> then<00:18:13.560> I<00:18:13.600> actually<00:18:13.920> get<00:18:14.800> uh<00:18:15.000> like<00:18:15.200> a\nthis, then I actually get uh like a\nthis, then I actually get uh like a multi-line<00:18:16.040> string<00:18:16.360> view<00:18:16.920> right<00:18:17.120> here.\nmulti-line string view right here.\nmulti-line string view right here. Um\nUm\nUm and<00:18:20.160> there's<00:18:20.320> actually<00:18:20.560> this<00:18:20.680> option<00:18:21.200> uh<00:18:21.400> to\nand there's actually this option uh to\nand there's actually this option uh to pull<00:18:21.800> this<00:18:21.960> out<00:18:22.080> as<00:18:22.200> a<00:18:22.240> new<00:18:22.400> tab.<00:18:22.640> So,<00:18:22.760> if<00:18:22.800> I\npull this out as a new tab. So, if I\npull this out as a new tab. So, if I click<00:18:23.080> and<00:18:23.160> drag<00:18:23.480> that,<00:18:23.880> I<00:18:23.960> can<00:18:24.160> create<00:18:24.520> a<00:18:24.600> tab\nclick and drag that, I can create a tab\nclick and drag that, I can create a tab uh<00:18:25.680> where<00:18:26.120> I<00:18:26.200> just<00:18:26.440> see,<00:18:26.760> \"Hey,<00:18:27.000> here's<00:18:27.520> here's\nuh where I just see, \"Hey, here's here's\nuh where I just see, \"Hey, here's here's the<00:18:27.880> text<00:18:28.240> data<00:18:29.040> visualized<00:18:29.480> as<00:18:29.600> text.\"<00:18:29.960> Now,\nthe text data visualized as text.\" Now,\nthe text data visualized as text.\" Now, you<00:18:30.240> may<00:18:30.360> be<00:18:30.520> wondering,\nyou may be wondering,\nyou may be wondering, \"Hey,<00:18:32.920> this<00:18:33.520> this<00:18:33.800> tab<00:18:34.360> UI<00:18:34.800> sure<00:18:35.120> looks<00:18:35.360> a<00:18:35.400> lot\n\"Hey, this this tab UI sure looks a lot\n\"Hey, this this tab UI sure looks a lot like<00:18:36.360> this<00:18:36.640> tab's<00:18:37.120> UI.\"<00:18:37.680> Like<00:18:37.960> if<00:18:38.120> we<00:18:38.240> look<00:18:38.440> at\nlike this tab's UI.\" Like if we look at\nlike this tab's UI.\" Like if we look at these<00:18:38.760> two<00:18:38.880> things<00:18:39.120> There's<00:18:39.280> a<00:18:39.320> couple<00:18:39.560> of\nthese two things There's a couple of\nthese two things There's a couple of differences.<00:18:40.040> Like<00:18:40.200> I<00:18:40.240> can't<00:18:40.520> seem<00:18:40.640> to<00:18:40.720> put\ndifferences. Like I can't seem to put\ndifferences. Like I can't seem to put breakpoints<00:18:41.440> here,<00:18:41.680> which<00:18:42.240> would<00:18:42.360> kind<00:18:42.520> of\nbreakpoints here, which would kind of\nbreakpoints here, which would kind of make<00:18:42.720> sense,<00:18:43.000> right?<00:18:43.160> Because<00:18:43.480> like<00:18:43.600> there's\nmake sense, right? Because like there's\nmake sense, right? Because like there's like<00:18:44.960> this<00:18:45.080> is<00:18:45.200> not<00:18:45.400> code.<00:18:45.840> Like<00:18:45.960> there's<00:18:46.160> no\nlike this is not code. Like there's no\nlike this is not code. Like there's no there's<00:18:46.720> no<00:18:47.080> This<00:18:47.240> was<00:18:47.360> not<00:18:47.480> compiled<00:18:47.960> to\nthere's no This was not compiled to\nthere's no This was not compiled to produce<00:18:48.240> instructions.<00:18:48.800> Like<00:18:48.920> none<00:18:49.040> of<00:18:49.120> that\nproduce instructions. Like none of that\nproduce instructions. Like none of that would<00:18:49.360> make<00:18:49.480> sense.<00:18:49.760> But,<00:18:50.600> um<00:18:50.920> we<00:18:51.000> have<00:18:51.160> line\nwould make sense. But, um we have line\nwould make sense. But, um we have line numbers.<00:18:51.800> We<00:18:51.840> have<00:18:52.000> line<00:18:52.200> numbers.<00:18:52.640> I<00:18:52.680> can\nnumbers. We have line numbers. I can\nnumbers. We have line numbers. I can click<00:18:53.000> and<00:18:53.080> drag.<00:18:53.680> I<00:18:53.760> can<00:18:54.320> uh<00:18:54.560> I<00:18:54.640> can<00:18:54.760> copy<00:18:55.080> and\nclick and drag. I can uh I can copy and\nclick and drag. I can uh I can copy and paste<00:18:55.560> like<00:18:55.760> what<00:18:56.000> ways<00:18:56.280> might<00:18:56.440> it<00:18:56.520> be\npaste like what ways might it be\npaste like what ways might it be rendered.<00:18:57.000> I<00:18:57.080> can<00:18:57.200> put<00:18:57.400> you<00:18:57.480> know,<00:18:57.560> put<00:18:57.720> that\nrendered. I can put you know, put that\nrendered. I can put you know, put that there,<00:18:58.080> whatever.\nthere, whatever.\nthere, whatever. And<00:19:00.000> the<00:19:00.120> short<00:19:00.480> story<00:19:00.840> is<00:19:00.960> that<00:19:01.080> these\nAnd the short story is that these\nAnd the short story is that these actually<00:19:01.520> are<00:19:01.600> the<00:19:01.720> same<00:19:01.960> UI.\nactually are the same UI.\nactually are the same UI. This<00:19:03.880> is<00:19:04.000> a<00:19:04.040> text<00:19:04.440> tab<00:19:04.960> um<00:19:05.200> and<00:19:05.360> this<00:19:05.520> is\nThis is a text tab um and this is\nThis is a text tab um and this is evaluating<00:19:06.120> longer<00:19:06.440> text,<00:19:06.880> which<00:19:07.200> should<00:19:07.400> be\nevaluating longer text, which should be\nevaluating longer text, which should be pretty<00:19:07.880> self-explanatory.<00:19:09.200> Um<00:19:09.400> and<00:19:09.480> then\npretty self-explanatory. Um and then\npretty self-explanatory. Um and then this<00:19:09.920> one\nthis one\nthis one um\num\num this<00:19:12.480> one<00:19:12.640> is<00:19:12.760> actually<00:19:13.520> evaluating<00:19:14.400> this\nthis one is actually evaluating this\nthis one is actually evaluating this expression,<00:19:15.360> which<00:19:15.520> is<00:19:15.720> file<00:19:16.120> colon\nexpression, which is file colon\nexpression, which is file colon uh<00:19:17.480> another<00:19:17.720> one<00:19:17.800> of<00:19:17.880> those<00:19:18.000> disambiguators,\nuh another one of those disambiguators,\nuh another one of those disambiguators, uh<00:19:19.160> C<00:19:19.760> devel<00:19:20.240> rad<00:19:20.440> bugger<00:19:20.680> source<00:19:21.000> mule<00:19:21.320> mule\nuh C devel rad bugger source mule mule\nuh C devel rad bugger source mule mule main.cpp.data.\nmain.cpp.data.\nmain.cpp.data. Um<00:19:24.360> and<00:19:24.440> you<00:19:24.520> can<00:19:24.600> see<00:19:24.720> some<00:19:24.880> of<00:19:24.920> the<00:19:25.000> members\nUm and you can see some of the members\nUm and you can see some of the members here<00:19:25.600> that<00:19:25.720> you<00:19:25.800> can<00:19:25.880> evaluate<00:19:26.480> for<00:19:26.640> any<00:19:26.800> file.\nhere that you can evaluate for any file.\nhere that you can evaluate for any file. But<00:19:27.880> anyways,<00:19:28.120> so<00:19:28.200> that's<00:19:28.400> just<00:19:28.520> evaluating\nBut anyways, so that's just evaluating\nBut anyways, so that's just evaluating the<00:19:29.080> file.<00:19:30.120> Um\nthe file. Um\nthe file. Um so<00:19:31.160> that's<00:19:31.480> kind<00:19:31.720> of<00:19:32.040> that's<00:19:32.200> kind<00:19:32.320> of\nso that's kind of that's kind of\nso that's kind of that's kind of interesting.<00:19:33.360> Um\ninteresting. Um\ninteresting. Um and<00:19:34.160> the<00:19:34.240> long<00:19:34.480> story<00:19:34.720> short<00:19:34.880> is<00:19:34.960> that<00:19:35.120> all\nand the long story short is that all\nand the long story short is that all these<00:19:35.440> visualizers<00:19:36.040> can<00:19:36.160> apply<00:19:36.560> to<00:19:36.800> both\nthese visualizers can apply to both\nthese visualizers can apply to both files,<00:19:38.520> they<00:19:38.600> can<00:19:38.720> apply<00:19:39.000> to<00:19:39.160> memory<00:19:39.520> from\nfiles, they can apply to memory from\nfiles, they can apply to memory from processes,<00:19:40.560> doesn't<00:19:40.840> matter.\nprocesses, doesn't matter.\nprocesses, doesn't matter. You<00:19:41.960> can<00:19:42.360> wherever<00:19:42.760> the<00:19:42.840> debugger<00:19:43.160> can<00:19:43.280> find\nYou can wherever the debugger can find\nYou can wherever the debugger can find data,<00:19:43.760> you<00:19:43.840> can<00:19:43.960> plug<00:19:44.160> them<00:19:44.320> into<00:19:44.480> these\ndata, you can plug them into these\ndata, you can plug them into these visualizers.<00:19:45.320> So,<00:19:45.760> to<00:19:45.880> demonstrate<00:19:46.360> that,\nvisualizers. So, to demonstrate that,\nvisualizers. So, to demonstrate that, let<00:19:47.520> me<00:19:47.600> show<00:19:47.720> another<00:19:48.240> debugger<00:19:48.520> visualizer.\nlet me show another debugger visualizer.\nlet me show another debugger visualizer. This<00:19:49.200> is<00:19:49.760> This<00:19:49.920> is<00:19:50.040> another<00:19:50.320> common<00:19:50.640> one.<00:19:50.880> So,\nThis is This is another common one. So,\nThis is This is another common one. So, if<00:19:51.120> we<00:19:51.240> have<00:19:52.040> basics,<00:19:52.760> this<00:19:53.080> structure,\nif we have basics, this structure,\nif we have basics, this structure, um\num\num let<00:19:55.560> me<00:19:55.680> open<00:19:55.840> up<00:19:55.960> the<00:19:56.040> memory<00:19:56.440> view,<00:19:56.840> which\nlet me open up the memory view, which\nlet me open up the memory view, which this<00:19:57.280> you'll<00:19:57.440> find<00:19:57.800> something<00:19:58.080> like<00:19:58.280> this<00:19:58.440> in\nthis you'll find something like this in\nthis you'll find something like this in Visual<00:19:58.760> Studio<00:19:59.320> and<00:19:59.560> in<00:19:59.680> lots<00:19:59.880> of<00:19:59.960> other\nVisual Studio and in lots of other\nVisual Studio and in lots of other debuggers.\ndebuggers.\ndebuggers. And<00:20:01.920> let<00:20:02.000> me<00:20:02.080> just<00:20:02.280> go<00:20:02.520> to<00:20:02.680> the<00:20:02.800> basics\nAnd let me just go to the basics\nAnd let me just go to the basics variable<00:20:04.320> here.\nvariable here.\nvariable here. Um<00:20:06.920> so,<00:20:07.080> here<00:20:07.400> is<00:20:07.560> where<00:20:08.160> uh<00:20:08.400> I<00:20:08.480> can<00:20:08.640> see<00:20:08.920> like\nUm so, here is where uh I can see like\nUm so, here is where uh I can see like uh<00:20:09.960> all<00:20:10.200> of<00:20:10.280> the<00:20:10.360> memory,<00:20:10.760> like<00:20:10.960> the<00:20:11.080> actual\nuh all of the memory, like the actual\nuh all of the memory, like the actual bytes\nbytes\nbytes that<00:20:12.720> are<00:20:12.840> used<00:20:13.160> to<00:20:13.400> to<00:20:13.880> encode<00:20:14.400> the<00:20:14.480> value<00:20:14.960> of\nthat are used to to encode the value of\nthat are used to to encode the value of this<00:20:15.240> basics<00:20:15.760> structure.<00:20:16.200> So,<00:20:16.320> we<00:20:16.400> can<00:20:16.520> see\nthis basics structure. So, we can see\nthis basics structure. So, we can see like<00:20:16.880> for<00:20:17.000> example,<00:20:17.880> um\nlike for example, um\nlike for example, um and<00:20:18.800> actually,<00:20:19.120> if<00:20:19.280> I\nand actually, if I\nand actually, if I uh\nuh\nuh you<00:20:21.200> can<00:20:21.320> see<00:20:21.480> that<00:20:21.680> there's<00:20:22.080> some\nyou can see that there's some\nyou can see that there's some visualization<00:20:22.840> features<00:20:23.080> in<00:20:23.160> the<00:20:23.200> debugger\nvisualization features in the debugger\nvisualization features in the debugger that<00:20:23.800> that<00:20:23.960> help<00:20:24.160> you<00:20:24.280> correlate<00:20:24.840> this<00:20:25.000> stuff.\nthat that help you correlate this stuff.\nthat that help you correlate this stuff. So,<00:20:25.320> if<00:20:25.400> I<00:20:25.480> hover<00:20:25.720> basics.a,<00:20:26.560> for<00:20:26.720> example,\nSo, if I hover basics.a, for example,\nSo, if I hover basics.a, for example, you<00:20:27.600> can<00:20:27.760> see<00:20:27.880> that<00:20:28.080> this<00:20:28.240> byte<00:20:28.440> gets\nyou can see that this byte gets\nyou can see that this byte gets highlighted.<00:20:29.160> And<00:20:29.280> vice<00:20:29.520> versa,<00:20:29.840> if<00:20:29.960> I<00:20:30.040> hover\nhighlighted. And vice versa, if I hover\nhighlighted. And vice versa, if I hover the<00:20:30.400> byte<00:20:30.640> here,<00:20:30.840> I<00:20:30.880> can<00:20:31.040> see\nthe byte here, I can see\nthe byte here, I can see the<00:20:32.120> member<00:20:32.520> that<00:20:32.920> that<00:20:33.120> byte<00:20:33.320> belong<00:20:33.640> that\nthe member that that byte belong that\nthe member that that byte belong that that<00:20:34.680> byte<00:20:34.960> falls<00:20:35.240> into<00:20:35.480> basically<00:20:35.960> in\nthat byte falls into basically in\nthat byte falls into basically in the<00:20:36.160> watch<00:20:36.400> window.<00:20:36.640> So,<00:20:37.400> um\nthe watch window. So, um\nthe watch window. So, um instead<00:20:38.440> of<00:20:38.520> doing<00:20:39.400> just<00:20:39.560> because<00:20:39.880> uh<00:20:40.240> I've\ninstead of doing just because uh I've\ninstead of doing just because uh I've got<00:20:40.480> my<00:20:40.600> font<00:20:40.840> size<00:20:41.080> turned<00:20:41.280> up<00:20:41.360> so<00:20:41.480> high,<00:20:41.600> let\ngot my font size turned up so high, let\ngot my font size turned up so high, let me<00:20:41.840> also<00:20:42.040> just<00:20:42.240> do<00:20:42.440> um\nme also just do um\nme also just do um let<00:20:44.240> me<00:20:44.320> just<00:20:44.720> do<00:20:44.960> two<00:20:45.160> panel,<00:20:45.640> one<00:20:45.800> with<00:20:45.920> the\nlet me just do two panel, one with the\nlet me just do two panel, one with the watch<00:20:46.280> window,\nwatch window,\nwatch window, and<00:20:48.560> one<00:20:48.720> with<00:20:49.080> the<00:20:49.480> memory<00:20:49.760> view.\nand one with the memory view.\nand one with the memory view. Um\nUm\nUm so,<00:20:52.560> like<00:20:52.720> here's<00:20:52.920> a<00:20:52.960> memory<00:20:53.280> view.<00:20:53.520> I<00:20:53.600> can<00:20:53.920> I\nso, like here's a memory view. I can I\nso, like here's a memory view. I can I can,<00:20:54.600> you<00:20:54.680> know,<00:20:54.840> hover<00:20:55.080> bytes.<00:20:55.640> Um<00:20:55.840> I<00:20:55.920> can\ncan, you know, hover bytes. Um I can\ncan, you know, hover bytes. Um I can even<00:20:56.280> mutate<00:20:56.680> bytes,<00:20:56.960> like<00:20:57.080> if<00:20:57.200> I<00:20:57.280> wanted<00:20:57.480> to\neven mutate bytes, like if I wanted to\neven mutate bytes, like if I wanted to do\ndo\ndo uh<00:20:58.760> I<00:20:58.880> wanted<00:20:59.120> to<00:20:59.240> change<00:20:59.520> this<00:20:59.800> to<00:21:00.040> to<00:21:00.200> a<00:21:00.240> zero\nuh I wanted to change this to to a zero\nuh I wanted to change this to to a zero byte,<00:21:01.240> um\nbyte, um\nbyte, um I<00:21:02.120> can<00:21:02.240> just<00:21:02.400> type<00:21:02.600> that<00:21:02.800> in<00:21:02.920> there.<00:21:03.760> Uh<00:21:04.160> we<00:21:04.240> can\nI can just type that in there. Uh we can\nI can just type that in there. Uh we can go<00:21:04.440> back<00:21:04.600> to<00:21:04.680> -1<00:21:05.120> if<00:21:05.240> I<00:21:05.280> do<00:21:05.400> an<00:21:05.480> FF.<00:21:06.400> Uh<00:21:06.520> here's\ngo back to -1 if I do an FF. Uh here's\ngo back to -1 if I do an FF. Uh here's 01,<00:21:07.480> I<00:21:07.520> can<00:21:07.640> do<00:21:07.760> like<00:21:07.920> 23,<00:21:08.960> which<00:21:09.480> uh<00:21:09.560> hex<00:21:09.840> 23\n01, I can do like 23, which uh hex 23\n01, I can do like 23, which uh hex 23 turns<00:21:10.440> into<00:21:10.600> 35,<00:21:11.320> which<00:21:11.600> happens<00:21:11.880> to<00:21:11.920> be<00:21:12.040> that\nturns into 35, which happens to be that\nturns into 35, which happens to be that character.\ncharacter.\ncharacter. Um\nUm\nUm So<00:21:15.000> yeah,<00:21:15.080> anyways,<00:21:15.400> here's<00:21:15.600> a<00:21:15.640> memory<00:21:15.920> view,\nSo yeah, anyways, here's a memory view,\nSo yeah, anyways, here's a memory view, right?\nright?\nright? And<00:21:17.760> I<00:21:17.800> can<00:21:17.920> dig<00:21:18.080> into<00:21:18.240> more<00:21:18.400> of<00:21:18.480> these\nAnd I can dig into more of these\nAnd I can dig into more of these features<00:21:19.600> if<00:21:20.200> you<00:21:20.280> know,<00:21:20.880> as<00:21:21.080> we<00:21:21.200> want<00:21:21.440> to.\nfeatures if you know, as we want to.\nfeatures if you know, as we want to. But<00:21:22.560> it's<00:21:22.720> like<00:21:22.960> I<00:21:23.040> just<00:21:23.240> told<00:21:23.480> you<00:21:23.560> that<00:21:23.760> I<00:21:23.800> can\nBut it's like I just told you that I can\nBut it's like I just told you that I can apply<00:21:24.240> these<00:21:24.440> visualizers<00:21:24.960> to<00:21:25.120> any\napply these visualizers to any\napply these visualizers to any expression,<00:21:26.120> right?<00:21:26.434> [clears throat]<00:21:26.800> In\nexpression, right? [clears throat] In\nexpression, right? [clears throat] In fact,<00:21:27.280> if<00:21:27.440> I<00:21:27.520> were<00:21:27.600> to<00:21:27.720> do<00:21:27.880> something<00:21:28.200> like\nfact, if I were to do something like\nfact, if I were to do something like memory<00:21:29.640> basics\nmemory basics\nmemory basics Um<00:21:32.720> sorry,<00:21:32.920> there's<00:21:33.080> tons<00:21:33.320> of<00:21:33.400> parameters\nUm sorry, there's tons of parameters\nUm sorry, there's tons of parameters here.<00:21:33.840> I<00:21:33.880> actually<00:21:34.160> fixed<00:21:34.480> this,<00:21:34.720> but<00:21:35.200> but<00:21:35.520> the\nhere. I actually fixed this, but but the\nhere. I actually fixed this, but but the stable<00:21:36.360> version<00:21:36.600> of<00:21:36.640> the<00:21:36.720> debugger<00:21:36.960> that<00:21:37.040> I'm\nstable version of the debugger that I'm\nstable version of the debugger that I'm using<00:21:37.560> doesn't<00:21:37.840> have<00:21:38.040> that<00:21:38.320> fixed,<00:21:38.680> but<00:21:38.880> this\nusing doesn't have that fixed, but this\nusing doesn't have that fixed, but this is<00:21:39.280> I<00:21:39.360> mean,<00:21:39.800> technically<00:21:40.200> these<00:21:40.400> are<00:21:40.520> all\nis I mean, technically these are all\nis I mean, technically these are all options,<00:21:41.080> but<00:21:41.200> it's<00:21:41.360> just<00:21:41.640> a<00:21:41.680> little<00:21:41.880> bit\noptions, but it's just a little bit\noptions, but it's just a little bit absurd<00:21:42.400> to<00:21:42.720> specify<00:21:43.080> this<00:21:43.240> in<00:21:43.320> the\nabsurd to specify this in the\nabsurd to specify this in the expression.<00:21:43.800> But<00:21:43.960> anyways,\nexpression. But anyways,\nexpression. But anyways, if<00:21:45.040> I<00:21:45.080> do<00:21:45.240> memory<00:21:45.520> of<00:21:45.640> basics,<00:21:46.080> you'll\nif I do memory of basics, you'll\nif I do memory of basics, you'll actually<00:21:46.520> see<00:21:47.480> that<00:21:47.800> um<00:21:48.120> I<00:21:48.200> get<00:21:48.320> a<00:21:48.360> memory<00:21:48.680> view\nactually see that um I get a memory view\nactually see that um I get a memory view and<00:21:49.040> it's<00:21:49.200> just<00:21:49.480> evaluating<00:21:50.000> the<00:21:50.120> address\nand it's just evaluating the address\nand it's just evaluating the address range<00:21:51.120> supplied<00:21:51.640> by<00:21:52.600> the<00:21:52.720> expression<00:21:53.400> basics.\nrange supplied by the expression basics.\nrange supplied by the expression basics. And<00:21:54.320> so<00:21:54.400> I<00:21:54.480> just<00:21:54.760> get<00:21:54.920> a<00:21:54.960> little<00:21:55.240> memory<00:21:55.480> view\nAnd so I just get a little memory view\nAnd so I just get a little memory view for<00:21:55.760> this.<00:21:56.400> In<00:21:56.480> the<00:21:56.560> case<00:21:56.720> when<00:21:56.840> you<00:21:56.880> don't\nfor this. In the case when you don't\nfor this. In the case when you don't have<00:21:57.200> any<00:21:57.360> expression,<00:21:57.880> it'll<00:21:58.120> prefer<00:21:58.680> to\nhave any expression, it'll prefer to\nhave any expression, it'll prefer to visualize<00:21:59.560> your<00:21:59.680> current<00:22:00.040> thread's<00:22:00.640> address\nvisualize your current thread's address\nvisualize your current thread's address space<00:22:01.360> or<00:22:01.480> your<00:22:01.600> current<00:22:01.920> thread's<00:22:02.280> process's\nspace or your current thread's process's\nspace or your current thread's process's address<00:22:03.120> space.<00:22:03.720> And<00:22:03.800> then<00:22:03.920> you<00:22:04.000> can<00:22:04.120> navigate\naddress space. And then you can navigate\naddress space. And then you can navigate to<00:22:04.800> basics<00:22:05.360> inside<00:22:05.760> of<00:22:05.840> that<00:22:06.000> address<00:22:06.240> space,\nto basics inside of that address space,\nto basics inside of that address space, but<00:22:06.520> you<00:22:06.600> can<00:22:06.680> also<00:22:06.840> just<00:22:07.000> get<00:22:07.160> one<00:22:07.440> that's\nbut you can also just get one that's\nbut you can also just get one that's narrowed<00:22:08.120> down<00:22:08.400> to<00:22:08.520> just<00:22:08.720> basics<00:22:09.480> um\nnarrowed down to just basics um\nnarrowed down to just basics um uh<00:22:11.000> like<00:22:11.200> this.\nuh like this.\nuh like this. So<00:22:12.560> anyways,<00:22:12.880> you<00:22:12.960> can<00:22:13.120> create<00:22:13.280> a<00:22:13.320> memory<00:22:13.600> view\nSo anyways, you can create a memory view\nSo anyways, you can create a memory view and<00:22:14.000> you<00:22:14.120> can<00:22:14.640> um<00:22:15.000> it<00:22:15.080> can<00:22:15.200> evaluate<00:22:15.640> any<00:22:16.240> any\nand you can um it can evaluate any any\nand you can um it can evaluate any any expression,<00:22:16.880> right?<00:22:17.520> So<00:22:17.760> what<00:22:17.960> we'll<00:22:18.080> do<00:22:18.760> is\nexpression, right? So what we'll do is\nexpression, right? So what we'll do is um<00:22:19.360> I'm<00:22:19.480> just<00:22:19.640> going<00:22:19.760> to<00:22:19.800> take<00:22:20.080> this\num I'm just going to take this\num I'm just going to take this expression<00:22:20.920> that<00:22:21.160> encodes<00:22:21.560> the<00:22:21.680> file\nexpression that encodes the file\nexpression that encodes the file uh<00:22:23.920> the<00:22:24.040> file<00:22:24.280> that's<00:22:24.480> viewing\nuh the file that's viewing\nuh the file that's viewing mule_main.cpp.\nmule_main.cpp.\nmule_main.cpp. And<00:22:26.520> I'm<00:22:26.600> just<00:22:26.760> going<00:22:26.880> to<00:22:26.920> create<00:22:27.080> a<00:22:27.120> new\nAnd I'm just going to create a new\nAnd I'm just going to create a new memory<00:22:27.520> tab<00:22:27.800> or<00:22:27.880> I<00:22:27.920> guess<00:22:28.080> I<00:22:28.400> I<00:22:28.440> can<00:22:28.560> just<00:22:28.720> use\nmemory tab or I guess I I can just use\nmemory tab or I guess I I can just use this<00:22:29.040> one.\nthis one.\nthis one. And<00:22:30.120> let<00:22:30.200> me<00:22:30.280> just<00:22:30.440> put<00:22:30.560> this<00:22:30.760> in\nAnd let me just put this in\nAnd let me just put this in um\num\num as<00:22:33.520> the<00:22:33.920> expression<00:22:34.320> that<00:22:34.440> this<00:22:34.600> memory<00:22:34.920> view\nas the expression that this memory view\nas the expression that this memory view is<00:22:35.200> evaluating.\nis evaluating.\nis evaluating. And<00:22:36.720> you<00:22:36.800> can<00:22:36.920> see<00:22:37.320> like<00:22:37.640> here's<00:22:37.960> the<00:22:38.040> byte\nAnd you can see like here's the byte\nAnd you can see like here's the byte representation<00:22:39.080> of<00:22:39.240> that<00:22:39.440> text<00:22:39.680> file.<00:22:40.120> So<00:22:40.760> um\nrepresentation of that text file. So um\nrepresentation of that text file. So um like<00:22:41.720> if<00:22:41.840> we<00:22:41.920> go<00:22:42.160> up<00:22:42.280> to<00:22:42.400> the<00:22:42.480> top<00:22:42.680> of<00:22:42.720> this<00:22:42.800> text\nlike if we go up to the top of this text\nlike if we go up to the top of this text file,<00:22:43.160> you<00:22:43.240> can<00:22:43.360> see\nfile, you can see\nfile, you can see //copyrights\n//copyrights\n//copyrights uh<00:22:46.680> (c)<00:22:47.680> Epic<00:22:48.000> Games<00:22:48.280> Tools<00:22:48.640> licensed<00:22:48.960> under\nuh (c) Epic Games Tools licensed under\nuh (c) Epic Games Tools licensed under the<00:22:49.240> MIT<00:22:49.600> license.<00:22:50.480> If<00:22:50.720> I<00:22:50.840> go<00:22:51.160> to<00:22:51.760> my<00:22:52.520> uh<00:22:52.600> memory\nthe MIT license. If I go to my uh memory\nthe MIT license. If I go to my uh memory view<00:22:53.040> here,<00:22:53.760> you<00:22:53.840> can<00:22:53.960> see<00:22:54.360> it's<00:22:54.520> just<00:22:54.720> like,\nview here, you can see it's just like,\nview here, you can see it's just like, \"Hey,<00:22:55.360> //copyright<00:22:56.760> (c)<00:22:57.400> Epic<00:22:57.760> Games<00:22:58.080> Tools.\"\n\"Hey, //copyright (c) Epic Games Tools.\"\n\"Hey, //copyright (c) Epic Games Tools.\" Like<00:22:58.560> it's<00:22:58.680> just<00:22:58.880> viewing<00:22:59.240> the<00:22:59.360> same<00:22:59.640> data<00:22:59.960> as\nLike it's just viewing the same data as\nLike it's just viewing the same data as text,<00:23:00.600> right?\ntext, right?\ntext, right? Or<00:23:02.080> sorry,<00:23:02.360> as<00:23:02.520> memory.<00:23:02.920> As<00:23:03.080> just<00:23:03.280> raw<00:23:03.920> bytes\nOr sorry, as memory. As just raw bytes\nOr sorry, as memory. As just raw bytes in<00:23:04.640> a<00:23:04.680> byte<00:23:04.920> grid.\nin a byte grid.\nin a byte grid. Um\nUm\nUm So,<00:23:08.080> um\nSo, um\nSo, um that's<00:23:09.880> like<00:23:10.040> something<00:23:10.360> you<00:23:10.440> can<00:23:10.560> do.<00:23:11.120> It's\nthat's like something you can do. It's\nthat's like something you can do. It's kind<00:23:11.440> of<00:23:11.520> cool.\nkind of cool.\nkind of cool. Uh<00:23:13.160> I<00:23:13.280> guess<00:23:13.800> I<00:23:13.840> don't<00:23:14.080> know<00:23:14.360> what<00:23:14.520> to<00:23:14.600> show\nUh I guess I don't know what to show\nUh I guess I don't know what to show next.<00:23:15.000> I<00:23:15.040> could<00:23:15.200> I<00:23:15.280> guess<00:23:15.480> I<00:23:15.560> could<00:23:15.720> show<00:23:15.880> some\nnext. I could I guess I could show some\nnext. I could I guess I could show some of<00:23:16.080> the<00:23:16.160> more<00:23:16.320> sophisticated<00:23:16.920> visualizers<00:23:17.520> as\nof the more sophisticated visualizers as\nof the more sophisticated visualizers as well.\nwell.\nwell. Like<00:23:19.760> uh\nLike uh\nLike uh um\num\num I<00:23:22.720> guess<00:23:22.920> we'll<00:23:23.040> go<00:23:23.200> down<00:23:23.520> to\nfancy<00:23:28.200> vizzy<00:23:28.480> val<00:23:28.680> tests.\nUm\nlet's<00:23:34.720> do\nlet's do\nlet's do Okay,<00:23:37.280> so<00:23:37.360> these<00:23:37.520> are<00:23:37.600> kind<00:23:37.760> of<00:23:37.840> cool.\nOkay, so these are kind of cool.\nOkay, so these are kind of cool. If<00:23:40.160> we<00:23:40.280> have<00:23:41.120> like<00:23:41.240> a<00:23:41.320> float<00:23:41.680> here<00:23:42.160> that's<00:23:42.840> um\nIf we have like a float here that's um\nIf we have like a float here that's um you<00:23:44.240> know,<00:23:44.360> 500<00:23:45.080> and<00:23:45.200> let's<00:23:45.400> say<00:23:45.560> like<00:23:45.920> I<00:23:46.000> just\nyou know, 500 and let's say like I just\nyou know, 500 and let's say like I just happen<00:23:46.440> to<00:23:46.520> know<00:23:46.840> in<00:23:47.040> C,<00:23:47.360> we<00:23:47.480> don't<00:23:47.640> have<00:23:47.760> this\nhappen to know in C, we don't have this\nhappen to know in C, we don't have this in<00:23:48.040> type<00:23:48.280> info,<00:23:48.560> but<00:23:49.040> but<00:23:49.120> basically<00:23:49.440> like<00:23:50.200> um\nin type info, but but basically like um\nin type info, but but basically like um I've<00:23:50.840> got<00:23:50.960> a<00:23:51.000> float<00:23:51.320> here,<00:23:51.560> it's<00:23:51.920> set<00:23:52.120> to<00:23:52.200> 500,\nI've got a float here, it's set to 500,\nI've got a float here, it's set to 500, um<00:23:53.400> but<00:23:53.520> I<00:23:53.600> want<00:23:53.720> to<00:23:53.800> consider<00:23:54.080> this<00:23:54.200> thing<00:23:54.400> as\num but I want to consider this thing as\num but I want to consider this thing as between<00:23:54.920> the<00:23:55.040> range<00:23:55.360> of<00:23:55.640> like<00:23:55.880> I<00:23:56.080> I<00:23:56.120> want<00:23:56.240> to\nbetween the range of like I I want to\nbetween the range of like I I want to consider<00:23:56.560> this<00:23:56.680> thing<00:23:56.840> as<00:23:57.120> within<00:23:57.440> the<00:23:57.520> range\nconsider this thing as within the range\nconsider this thing as within the range of<00:23:57.920> 0<00:23:58.240> to<00:23:58.360> 1,000,<00:23:58.840> right?\nof 0 to 1,000, right?\nof 0 to 1,000, right? Um\nUm\nUm So,<00:24:01.360> you<00:24:01.440> can<00:24:01.560> actually<00:24:01.880> specify<00:24:02.280> this<00:24:02.440> to<00:24:02.520> the\nSo, you can actually specify this to the\nSo, you can actually specify this to the debugger<00:24:02.920> and<00:24:03.000> you<00:24:03.080> can<00:24:03.200> say<00:24:03.360> range<00:24:03.720> one<00:24:04.560> for\ndebugger and you can say range one for\ndebugger and you can say range one for one<00:24:05.400> for<00:24:05.600> one<00:24:06.040> one<00:24:06.200> dimension.\none for one one dimension.\none for one one dimension. And<00:24:07.400> I<00:24:07.440> can<00:24:07.560> say<00:24:07.720> slide<00:24:08.120> one<00:24:08.440> and<00:24:08.560> I<00:24:08.640> want<00:24:08.840> this\nAnd I can say slide one and I want this\nAnd I can say slide one and I want this to<00:24:09.040> be<00:24:09.120> zero<00:24:09.960> between<00:24:10.186> [clears throat]<00:24:10.320> zero\nto be zero between [clears throat] zero\nto be zero between [clears throat] zero and<00:24:10.600> 1,000,<00:24:11.040> so<00:24:11.120> it<00:24:11.200> should<00:24:11.320> be<00:24:11.400> right<00:24:11.600> in<00:24:11.640> the\nand 1,000, so it should be right in the\nand 1,000, so it should be right in the middle.\nmiddle.\nmiddle. >> Nice.\n>> Nice.\n>> Nice. >> And<00:24:13.360> sure<00:24:13.840> And<00:24:13.960> sure<00:24:14.120> enough\n>> And sure And sure enough\n>> And sure And sure enough you<00:24:15.280> get<00:24:15.440> this<00:24:16.000> and<00:24:16.480> if<00:24:16.680> I<00:24:16.920> change<00:24:17.240> the<00:24:17.320> value\nyou get this and if I change the value\nyou get this and if I change the value and<00:24:18.480> if<00:24:18.560> I<00:24:18.640> just<00:24:18.800> evaluate<00:24:19.200> the<00:24:19.280> float<00:24:19.600> itself,\nand if I just evaluate the float itself,\nand if I just evaluate the float itself, you'll<00:24:20.120> see<00:24:20.320> that<00:24:20.560> I'm<00:24:20.680> actually<00:24:20.960> changing\nyou'll see that I'm actually changing\nyou'll see that I'm actually changing the<00:24:21.520> memory<00:24:21.880> like<00:24:22.120> of<00:24:22.240> the<00:24:22.320> program<00:24:22.760> as<00:24:22.920> I<00:24:22.960> do\nthe memory like of the program as I do\nthe memory like of the program as I do this.\nthis.\nthis. Um\nSo,\nSo,\nSo, um\num\num and<00:24:29.520> then<00:24:29.680> it's<00:24:29.800> like<00:24:29.960> you<00:24:30.240> you<00:24:30.320> might<00:24:30.520> look<00:24:30.640> at\nand then it's like you you might look at\nand then it's like you you might look at this<00:24:30.840> and<00:24:30.920> you're<00:24:31.000> like,<00:24:31.120> \"Hey,<00:24:31.280> this<00:24:31.520> UI\nthis and you're like, \"Hey, this UI\nthis and you're like, \"Hey, this UI actually<00:24:32.280> looks<00:24:32.480> a<00:24:32.560> lot<00:24:32.920> like<00:24:33.120> if<00:24:33.280> I<00:24:33.360> hit<00:24:33.600> F1\nactually looks a lot like if I hit F1\nactually looks a lot like if I hit F1 and<00:24:34.120> type<00:24:34.360> font<00:24:34.720> size.\"<00:24:35.760> It's<00:24:35.920> so<00:24:36.080> strange\nand type font size.\" It's so strange\nand type font size.\" It's so strange because<00:24:36.800> I<00:24:36.880> actually<00:24:37.160> see<00:24:37.520> that<00:24:37.720> there's<00:24:37.920> all\nbecause I actually see that there's all\nbecause I actually see that there's all these<00:24:38.160> options<00:24:38.520> for<00:24:38.640> like<00:24:38.840> these<00:24:39.000> different\nthese options for like these different\nthese options for like these different kinds<00:24:39.480> of<00:24:39.560> like<00:24:39.720> sizes<00:24:40.280> and<00:24:40.400> font<00:24:40.640> sizes<00:24:41.000> and\nkinds of like sizes and font sizes and\nkinds of like sizes and font sizes and stuff<00:24:41.240> like<00:24:41.360> that.<00:24:41.800> It's<00:24:41.880> like,<00:24:42.320> \"That's\nstuff like that. It's like, \"That's\nstuff like that. It's like, \"That's pretty<00:24:42.640> interesting,<00:24:42.960> right?\"<00:24:43.080> It's<00:24:43.200> like,\npretty interesting, right?\" It's like,\npretty interesting, right?\" It's like, \"Yeah,<00:24:43.560> that's<00:24:43.960> evaluating<00:24:44.800> the<00:24:44.920> setting<00:24:45.440> of\n\"Yeah, that's evaluating the setting of\n\"Yeah, that's evaluating the setting of the<00:24:45.840> debugger.\"<00:24:46.320> Like<00:24:46.520> that's<00:24:47.000> So,<00:24:47.160> this<00:24:47.360> is\nthe debugger.\" Like that's So, this is\nthe debugger.\" Like that's So, this is literally<00:24:47.880> the<00:24:48.000> same<00:24:48.240> UI<00:24:48.840> as<00:24:49.080> this.<00:24:49.320> It's<00:24:49.440> not\nliterally the same UI as this. It's not\nliterally the same UI as this. It's not just<00:24:49.840> that<00:24:49.920> I'm<00:24:50.040> calling<00:24:50.320> the<00:24:50.400> same<00:24:50.600> helper\njust that I'm calling the same helper\njust that I'm calling the same helper function<00:24:51.240> in<00:24:51.320> two<00:24:51.480> places.<00:24:52.320> It's<00:24:52.600> literally\nfunction in two places. It's literally\nfunction in two places. It's literally the<00:24:53.120> same<00:24:53.360> path<00:24:54.080> uh<00:24:54.160> being<00:24:54.360> used<00:24:54.520> for<00:24:54.600> both.\nthe same path uh being used for both.\nthe same path uh being used for both. So,<00:24:55.680> that's<00:24:55.840> like<00:24:56.000> one<00:24:56.400> kind<00:24:56.600> of<00:24:57.040> fun<00:24:57.320> thing.\nSo, that's like one kind of fun thing.\nSo, that's like one kind of fun thing. It's<00:24:57.960> not<00:24:58.120> super<00:24:58.400> important<00:24:58.800> to<00:24:58.880> know<00:24:59.040> that,\nIt's not super important to know that,\nIt's not super important to know that, but<00:24:59.400> it's<00:24:59.560> just<00:24:59.720> like<00:24:59.880> a<00:24:59.960> cool<00:25:00.280> architectural\nbut it's just like a cool architectural\nbut it's just like a cool architectural aspect<00:25:01.280> of<00:25:01.640> the<00:25:01.720> debugger<00:25:02.120> is<00:25:02.280> that<00:25:02.720> I<00:25:02.840> found\naspect of the debugger is that I found\naspect of the debugger is that I found that<00:25:03.240> the<00:25:03.320> best<00:25:03.640> way<00:25:03.800> to<00:25:04.040> collapse<00:25:04.680> all<00:25:04.920> of\nthat the best way to collapse all of\nthat the best way to collapse all of this\nthis\nthis all<00:25:06.320> of<00:25:06.400> these<00:25:06.640> UIs<00:25:07.040> for<00:25:07.120> like<00:25:07.480> editing<00:25:07.800> the\nall of these UIs for like editing the\nall of these UIs for like editing the debugger<00:25:08.200> settings<00:25:08.760> and,<00:25:09.000> you<00:25:09.040> know,<00:25:09.200> tab\ndebugger settings and, you know, tab\ndebugger settings and, you know, tab settings<00:25:10.080> and<00:25:10.320> watch<00:25:10.600> window<00:25:10.800> stuff.<00:25:11.040> It's\nsettings and watch window stuff. It's\nsettings and watch window stuff. It's like\nlike\nlike I<00:25:12.840> I<00:25:12.920> found<00:25:13.080> that<00:25:13.200> the<00:25:13.240> best<00:25:13.480> way<00:25:13.640> to<00:25:13.760> actually\nI I found that the best way to actually\nI I found that the best way to actually collapse<00:25:14.360> all<00:25:14.480> of<00:25:14.560> it<00:25:14.640> down<00:25:14.880> was<00:25:15.120> to<00:25:15.240> make<00:25:15.520> the\ncollapse all of it down was to make the\ncollapse all of it down was to make the watch<00:25:15.800> window<00:25:16.040> super<00:25:16.280> super<00:25:16.520> powerful.<00:25:16.960> So,\nwatch window super super powerful. So,\nwatch window super super powerful. So, that's<00:25:18.560> what<00:25:18.720> ended<00:25:18.960> up<00:25:19.080> happening.<00:25:19.360> So,\nthat's what ended up happening. So,\nthat's what ended up happening. So, anyways,<00:25:20.160> we<00:25:20.240> have<00:25:20.360> sliders<00:25:20.840> here.<00:25:21.120> You<00:25:21.240> can\nanyways, we have sliders here. You can\nanyways, we have sliders here. You can do<00:25:21.440> this<00:25:21.640> with<00:25:21.920> integers<00:25:22.360> as<00:25:22.520> well.<00:25:22.760> So,<00:25:22.880> I\ndo this with integers as well. So, I\ndo this with integers as well. So, I could<00:25:23.040> do<00:25:23.160> range<00:25:23.480> one<00:25:24.160> uh<00:25:24.320> slide<00:25:24.680> three<00:25:25.000> is<00:25:25.040> an\ncould do range one uh slide three is an\ncould do range one uh slide three is an integer<00:25:25.560> and<00:25:25.680> I<00:25:25.720> can<00:25:25.840> say<00:25:26.000> this<00:25:26.200> is<00:25:26.320> also\ninteger and I can say this is also\ninteger and I can say this is also between<00:25:27.200> uh<00:25:27.280> this<00:25:27.480> is<00:25:27.560> between<00:25:27.880> zero<00:25:28.080> and<00:25:28.160> 100.\nbetween uh this is between zero and 100.\nbetween uh this is between zero and 100. Same<00:25:29.400> exact<00:25:29.680> thing<00:25:29.880> here,<00:25:30.360> right?<00:25:31.120> Um\nSo,\nSo,\nSo, uh<00:25:38.840> we<00:25:38.920> have<00:25:39.040> colors<00:25:40.120> um\nuh we have colors um\nuh we have colors um as<00:25:41.840> well.<00:25:42.120> So,<00:25:42.280> if<00:25:42.400> I've<00:25:42.560> got<00:25:42.920> um<00:25:43.440> example\nas well. So, if I've got um example\nas well. So, if I've got um example color<00:25:44.040> 4F32\ncolor 4F32\ncolor 4F32 um<00:25:46.400> which<00:25:46.640> I<00:25:46.720> think<00:25:47.080> I<00:25:47.120> think<00:25:47.320> some<00:25:47.520> of<00:25:47.600> these\num which I think I think some of these\num which I think I think some of these may<00:25:48.080> be<00:25:48.520> kind<00:25:48.720> of<00:25:48.840> work<00:25:49.040> in<00:25:49.120> progress.<00:25:49.600> So,<00:25:49.680> I\nmay be kind of work in progress. So, I\nmay be kind of work in progress. So, I don't<00:25:49.920> know<00:25:50.320> there<00:25:50.440> might<00:25:50.640> be<00:25:50.960> one<00:25:51.160> of<00:25:51.240> these\ndon't know there might be one of these\ndon't know there might be one of these that<00:25:51.640> doesn't<00:25:51.920> quite<00:25:52.200> work<00:25:52.400> yet,<00:25:52.560> but<00:25:52.720> let's\nthat doesn't quite work yet, but let's\nthat doesn't quite work yet, but let's try<00:25:53.840> let's<00:25:54.000> try<00:25:54.160> color<00:25:55.240> um<00:25:55.640> example<00:25:56.240> color\ntry let's try color um example color\ntry let's try color um example color U32.<00:25:57.920> Is<00:25:58.000> this<00:25:58.120> going<00:25:58.240> to<00:25:58.320> work?<00:25:58.760> Okay.<00:25:59.200> I\nU32. Is this going to work? Okay. I\nU32. Is this going to work? Okay. I don't<00:25:59.440> know<00:25:59.520> if<00:25:59.640> editing<00:26:00.040> will<00:26:00.160> work.<00:26:00.680> Okay,\ndon't know if editing will work. Okay,\ndon't know if editing will work. Okay, yeah,<00:26:01.040> editing<00:26:01.360> works.<00:26:01.560> So,<00:26:01.720> U32<00:26:02.280> seems<00:26:02.520> to<00:26:02.600> be\nyeah, editing works. So, U32 seems to be\nyeah, editing works. So, U32 seems to be the<00:26:02.960> one<00:26:03.200> that<00:26:03.360> I<00:26:03.840> I<00:26:03.920> think<00:26:04.120> the<00:26:04.240> four<00:26:04.480> float\nthe one that I I think the four float\nthe one that I I think the four float one<00:26:04.960> is<00:26:05.120> maybe\none is maybe\none is maybe there's<00:26:06.560> still<00:26:06.720> some<00:26:06.840> stuff<00:26:07.000> that's<00:26:07.160> in\nthere's still some stuff that's in\nthere's still some stuff that's in progress<00:26:07.680> here<00:26:07.840> with<00:26:08.160> with<00:26:08.400> some<00:26:08.520> of<00:26:08.600> these\nprogress here with with some of these\nprogress here with with some of these fancy<00:26:09.120> things.<00:26:09.400> Like<00:26:09.520> I<00:26:09.560> think<00:26:09.800> this<00:26:09.960> might\nfancy things. Like I think this might\nfancy things. Like I think this might work<00:26:10.920> for<00:26:11.080> the<00:26:11.200> visualization,<00:26:11.960> but<00:26:12.120> I<00:26:12.160> don't\nwork for the visualization, but I don't\nwork for the visualization, but I don't know<00:26:12.400> if<00:26:12.520> I<00:26:12.560> can<00:26:12.720> edit<00:26:13.000> it.<00:26:13.560> Yeah,<00:26:13.760> so<00:26:13.880> there's\nknow if I can edit it. Yeah, so there's\nknow if I can edit it. Yeah, so there's a<00:26:14.200> there's<00:26:14.320> a<00:26:14.360> couple<00:26:14.600> of<00:26:14.640> missing<00:26:14.920> features\na there's a couple of missing features\na there's a couple of missing features here,<00:26:15.360> but<00:26:16.000> in<00:26:16.080> the<00:26:16.120> case<00:26:16.320> of<00:26:16.400> the<00:26:16.480> U32\nhere, but in the case of the U32\nhere, but in the case of the U32 um<00:26:18.520> you<00:26:18.640> know,<00:26:18.760> we<00:26:18.880> can<00:26:19.040> edit<00:26:19.960> just<00:26:20.320> this<00:26:20.480> thing\num you know, we can edit just this thing\num you know, we can edit just this thing here.<00:26:21.120> We<00:26:21.200> can<00:26:21.320> change<00:26:21.800> whatever<00:26:22.000> the<00:26:22.080> color\nhere. We can change whatever the color\nhere. We can change whatever the color value<00:26:22.640> is.<00:26:23.480> Um<00:26:23.800> and<00:26:23.920> you<00:26:23.960> can<00:26:24.080> see<00:26:24.240> like<00:26:24.680> this\nvalue is. Um and you can see like this\nvalue is. Um and you can see like this U32<00:26:25.520> value<00:26:25.920> it's<00:26:26.080> being<00:26:26.640> uh<00:26:26.920> kind<00:26:27.080> of<00:26:27.600> peaked\nU32 value it's being uh kind of peaked\nU32 value it's being uh kind of peaked right<00:26:28.240> here<00:26:28.400> in<00:26:28.480> the<00:26:28.520> source<00:26:28.800> code.<00:26:29.720> Um<00:26:30.320> and\nright here in the source code. Um and\nright here in the source code. Um and you<00:26:30.720> can<00:26:30.840> see<00:26:30.960> it's<00:26:31.080> actually<00:26:31.360> changing<00:26:31.800> like\nyou can see it's actually changing like\nyou can see it's actually changing like as<00:26:32.200> I<00:26:32.280> just<00:26:32.440> drag<00:26:32.720> this<00:26:32.880> color<00:26:33.440> around.<00:26:34.160> Um\nas I just drag this color around. Um\nas I just drag this color around. Um So,<00:26:35.560> yeah.\nSo, yeah.\nSo, yeah. Um\nUm\nUm >> [sighs]\n>> [sighs]\n>> [sighs] >> uh<00:26:39.160> multi-line<00:26:39.720> text<00:26:40.080> I<00:26:40.120> already<00:26:40.360> showed\n>> uh multi-line text I already showed\n>> uh multi-line text I already showed this,<00:26:40.960> but<00:26:41.240> we<00:26:41.320> can<00:26:41.440> do<00:26:41.800> text<00:26:42.320> of<00:26:43.120> uh\nthis, but we can do text of uh\nthis, but we can do text of uh long<00:26:44.080> string.\nlong string.\nlong string. We<00:26:45.880> can<00:26:46.000> do<00:26:46.360> text<00:26:47.360> um\nWe can do text um\nWe can do text um text<00:26:48.880> of<00:26:49.040> code<00:26:49.360> string.<00:26:50.000> The<00:26:50.120> language<00:26:50.720> and<00:26:51.040> in\ntext of code string. The language and in\ntext of code string. The language and in this<00:26:51.280> case<00:26:51.520> it's<00:26:51.680> like<00:26:51.840> we<00:26:51.920> have<00:26:52.080> some<00:26:52.280> C\nthis case it's like we have some C\nthis case it's like we have some C source<00:26:52.800> code<00:26:53.000> so<00:26:53.080> maybe<00:26:53.280> I<00:26:53.320> just<00:26:53.480> want<00:26:53.600> to<00:26:53.680> say\nsource code so maybe I just want to say\nsource code so maybe I just want to say C<00:26:54.760> Uh\nC Uh\nC Uh or<00:26:55.920> sorry\nor sorry\nor sorry that<00:26:57.400> not<00:26:57.640> shown<00:26:57.800> in<00:26:57.840> the<00:26:57.920> docs<00:26:58.160> but<00:26:58.280> that\nthat not shown in the docs but that\nthat not shown in the docs but that needs<00:26:58.640> to<00:26:58.720> be<00:26:58.760> a<00:26:58.800> named<00:26:59.080> parameter.<00:26:59.400> So\nneeds to be a named parameter. So\nneeds to be a named parameter. So anyways,<00:27:00.280> code<00:27:00.520> strain<00:27:00.840> lang<00:27:01.120> C\nanyways, code strain lang C\nanyways, code strain lang C I'm<00:27:02.440> still<00:27:02.600> working<00:27:02.840> on<00:27:02.960> the<00:27:03.080> in<00:27:03.480> application\nI'm still working on the in application\nI'm still working on the in application docs<00:27:04.240> so<00:27:04.360> it's<00:27:04.480> a<00:27:04.520> little<00:27:04.720> bit<00:27:05.080> it's<00:27:05.200> a<00:27:05.240> little\ndocs so it's a little bit it's a little\ndocs so it's a little bit it's a little bit<00:27:05.480> like<00:27:05.640> of<00:27:05.720> a<00:27:05.760> secret<00:27:06.240> thing<00:27:06.480> but\nbit like of a secret thing but\nbit like of a secret thing but lang<00:27:08.440> equals<00:27:08.720> C<00:27:08.880> and<00:27:08.960> then<00:27:09.080> you<00:27:09.160> can<00:27:09.240> see<00:27:09.640> oh<00:27:09.880> I\nlang equals C and then you can see oh I\nlang equals C and then you can see oh I actually<00:27:10.240> see<00:27:10.400> my<00:27:10.600> C<00:27:10.800> source<00:27:11.040> code<00:27:11.240> here\nactually see my C source code here\nactually see my C source code here syntax<00:27:13.080> highlighted<00:27:13.560> and<00:27:13.640> everything<00:27:14.040> and\nsyntax highlighted and everything and\nsyntax highlighted and everything and show<00:27:14.560> showing<00:27:14.800> me<00:27:14.880> the<00:27:15.000> scopes<00:27:15.320> and<00:27:15.400> stuff\nshow showing me the scopes and stuff\nshow showing me the scopes and stuff like<00:27:15.720> that.<00:27:16.560> Um\nlike that. Um\nlike that. Um So<00:27:18.600> let's<00:27:18.760> see<00:27:18.880> what<00:27:19.000> else.<00:27:19.640> This<00:27:19.880> is<00:27:19.960> assembly\nSo let's see what else. This is assembly\nSo let's see what else. This is assembly of<00:27:20.640> course.<00:27:21.000> So<00:27:21.440> if<00:27:21.640> I<00:27:21.720> open<00:27:21.960> up<00:27:22.040> like<00:27:22.200> a\nof course. So if I open up like a\nof course. So if I open up like a disassembly<00:27:22.840> view\ndisassembly view\ndisassembly view um\num\num and<00:27:25.920> uh\nI<00:27:28.200> want<00:27:28.360> to<00:27:28.400> see<00:27:28.520> like<00:27:28.720> where<00:27:28.880> my<00:27:29.000> thread<00:27:29.280> is\nI want to see like where my thread is\nI want to see like where my thread is with<00:27:29.920> respect<00:27:30.200> to<00:27:30.280> the<00:27:30.440> actual<00:27:30.880> machine<00:27:31.160> code\nwith respect to the actual machine code\nwith respect to the actual machine code instructions\ninstructions\ninstructions um<00:27:33.360> I<00:27:33.440> can<00:27:33.560> open<00:27:33.720> up<00:27:33.800> a<00:27:33.880> disassembly<00:27:34.320> view<00:27:34.520> that\num I can open up a disassembly view that\num I can open up a disassembly view that takes<00:27:35.040> the<00:27:35.160> actual<00:27:35.480> code<00:27:35.840> that's<00:27:36.080> in<00:27:36.200> the\ntakes the actual code that's in the\ntakes the actual code that's in the process<00:27:36.720> that<00:27:36.880> the<00:27:36.960> thread<00:27:37.240> is<00:27:37.360> stopped<00:27:37.720> on\nprocess that the thread is stopped on\nprocess that the thread is stopped on and<00:27:38.480> it<00:27:38.600> just<00:27:39.200> disassembles<00:27:39.840> it.<00:27:40.640> Um<00:27:41.440> meaning\nand it just disassembles it. Um meaning\nand it just disassembles it. Um meaning it<00:27:41.800> interprets<00:27:42.280> it<00:27:42.400> how<00:27:42.480> the<00:27:42.560> CPU<00:27:42.920> would\nit interprets it how the CPU would\nit interprets it how the CPU would interpret<00:27:43.360> it<00:27:43.480> to<00:27:43.560> find<00:27:43.800> out<00:27:43.920> what<00:27:44.080> the\ninterpret it to find out what the\ninterpret it to find out what the instructions<00:27:44.600> are,<00:27:44.880> what<00:27:45.000> are<00:27:45.040> the\ninstructions are, what are the\ninstructions are, what are the parameters<00:27:45.560> to<00:27:45.640> the<00:27:45.680> instructions,<00:27:46.200> like<00:27:46.320> all\nparameters to the instructions, like all\nparameters to the instructions, like all these<00:27:46.600> things.\nthese things.\nthese things. And<00:27:48.360> uh<00:27:48.480> you<00:27:48.560> can<00:27:48.680> see<00:27:48.840> it<00:27:48.960> corre-<00:27:49.280> it\nAnd uh you can see it corre- it\nAnd uh you can see it corre- it automatically<00:27:49.800> correlates<00:27:50.320> like<00:27:50.520> with\nautomatically correlates like with\nautomatically correlates like with source<00:27:51.600> code<00:27:51.880> like<00:27:52.040> you<00:27:52.160> can<00:27:52.280> see<00:27:52.600> like<00:27:52.800> which\nsource code like you can see like which\nsource code like you can see like which instructions<00:27:53.600> map<00:27:53.800> to<00:27:53.880> which<00:27:54.080> line<00:27:54.280> of<00:27:54.360> source\ninstructions map to which line of source\ninstructions map to which line of source code<00:27:54.800> and<00:27:54.920> so<00:27:55.120> on.<00:27:55.840> Um<00:27:55.960> and<00:27:56.080> then<00:27:56.200> as<00:27:56.400> I<00:27:56.440> step\ncode and so on. Um and then as I step\ncode and so on. Um and then as I step like<00:27:57.040> you'll<00:27:57.200> see<00:27:57.360> that<00:27:57.520> the<00:27:57.640> thread<00:27:58.280> like\nlike you'll see that the thread like\nlike you'll see that the thread like goes<00:27:58.640> through<00:27:59.280> um\ngoes through um\ngoes through um goes<00:28:00.640> through<00:28:00.760> the<00:28:00.840> code<00:28:01.080> here.\ngoes through the code here.\ngoes through the code here. Um\nUm\nUm this<00:28:03.080> is<00:28:03.200> also<00:28:03.440> just<00:28:03.640> a<00:28:03.680> visualizer,<00:28:04.400> right?\nthis is also just a visualizer, right?\nthis is also just a visualizer, right? So<00:28:04.720> I<00:28:04.760> could<00:28:04.920> just<00:28:05.320> do<00:28:05.760> like<00:28:06.280> disasm<00:28:06.960> and<00:28:07.080> I\nSo I could just do like disasm and I\nSo I could just do like disasm and I could<00:28:07.280> put<00:28:07.440> in<00:28:07.520> like<00:28:07.720> a<00:28:08.400> like<00:28:08.520> my<00:28:08.680> mule<00:28:08.920> main\ncould put in like a like my mule main\ncould put in like a like my mule main function\nfunction\nfunction and<00:28:11.320> if<00:28:11.480> I<00:28:12.160> go<00:28:12.360> to<00:28:12.520> mule<00:28:12.760> main<00:28:13.200> here\nand if I go to mule main here\nand if I go to mule main here uh<00:28:15.400> you<00:28:15.520> can<00:28:15.640> see<00:28:15.840> that\nuh you can see that\nuh you can see that uh<00:28:16.960> let<00:28:17.080> me<00:28:17.160> pull<00:28:17.320> this<00:28:17.440> out<00:28:17.560> as<00:28:17.680> its<00:28:17.800> own<00:28:17.960> tab.\nuh let me pull this out as its own tab.\nuh let me pull this out as its own tab. So<00:28:18.280> we're<00:28:18.360> just<00:28:18.600> viewing<00:28:18.840> the<00:28:18.920> disassembly<00:28:19.560> of\nSo we're just viewing the disassembly of\nSo we're just viewing the disassembly of mule<00:28:20.120> main\nmule main\nmule main and<00:28:21.680> we<00:28:21.840> can<00:28:22.000> see<00:28:22.200> like<00:28:22.720> that's<00:28:22.960> just<00:28:23.240> going<00:28:23.360> to\nand we can see like that's just going to\nand we can see like that's just going to do<00:28:23.720> exactly<00:28:24.120> what<00:28:24.200> I<00:28:24.240> told<00:28:24.480> it<00:28:24.600> to.<00:28:24.720> It's<00:28:24.880> like\ndo exactly what I told it to. It's like\ndo exactly what I told it to. It's like disassemble<00:28:25.560> mule<00:28:25.720> main<00:28:26.120> and<00:28:26.280> show<00:28:26.440> me<00:28:27.160> what\ndisassemble mule main and show me what\ndisassemble mule main and show me what it<00:28:27.360> looks<00:28:27.520> like<00:28:27.720> and<00:28:27.960> and\nit looks like and and\nit looks like and and here<00:28:29.320> it<00:28:29.400> is.\nhere it is.\nhere it is. Um\nUm\nUm so\nso\nso then<00:28:35.760> the<00:28:36.000> next<00:28:36.280> thing<00:28:36.480> I<00:28:36.640> should<00:28:36.880> probably\nthen the next thing I should probably\nthen the next thing I should probably show<00:28:37.680> is\nshow is\nshow is uh<00:28:39.320> we've<00:28:39.400> got<00:28:39.560> other<00:28:39.720> kinds<00:28:39.960> of<00:28:40.000> visualizers\nuh we've got other kinds of visualizers\nuh we've got other kinds of visualizers like<00:28:40.880> um<00:28:41.360> like<00:28:41.480> a<00:28:41.520> bit<00:28:41.680> map<00:28:41.880> visualizer<00:28:42.320> for\nlike um like a bit map visualizer for\nlike um like a bit map visualizer for example.<00:28:42.800> So<00:28:42.880> if<00:28:42.960> I've<00:28:43.080> got<00:28:43.200> a<00:28:43.240> bunch<00:28:43.440> of<00:28:43.480> data\nexample. So if I've got a bunch of data\nexample. So if I've got a bunch of data like<00:28:44.200> U32s<00:28:44.880> that<00:28:45.000> that<00:28:45.200> to<00:28:45.400> interpret<00:28:45.800> as\nlike U32s that that to interpret as\nlike U32s that that to interpret as pixels\npixels\npixels I<00:28:47.240> can<00:28:47.440> say,<00:28:47.680> \"Hey,<00:28:47.960> like<00:28:48.200> I<00:28:48.280> actually<00:28:48.560> have<00:28:48.680> a\nI can say, \"Hey, like I actually have a\nI can say, \"Hey, like I actually have a bitmap<00:28:49.480> and<00:28:49.800> my\nbitmap and my\nbitmap and my my<00:28:51.760> pixels<00:28:52.240> for<00:28:52.440> for<00:28:52.560> this<00:28:52.680> bitmap<00:28:53.520> is<00:28:53.640> just\nmy pixels for for this bitmap is just\nmy pixels for for this bitmap is just this<00:28:54.040> big<00:28:54.280> array<00:28:54.560> of<00:28:54.840> of<00:28:55.200> U32s<00:28:55.760> called<00:28:55.960> pixels.\nthis big array of of U32s called pixels.\nthis big array of of U32s called pixels. I<00:28:56.960> happen<00:28:57.200> to<00:28:57.320> know<00:28:57.520> that<00:28:57.680> the<00:28:57.760> dimensions<00:28:58.200> of\nI happen to know that the dimensions of\nI happen to know that the dimensions of this<00:28:58.480> thing<00:28:58.840> are<00:28:59.040> 18<00:28:59.320> by<00:28:59.480> 18,<00:28:59.920> but<00:29:00.040> you<00:29:00.120> can<00:29:00.240> put\nthis thing are 18 by 18, but you can put\nthis thing are 18 by 18, but you can put in<00:29:00.480> whatever<00:29:00.720> you<00:29:00.800> want<00:29:01.000> there.\"\nin whatever you want there.\"\nin whatever you want there.\" And<00:29:02.080> then<00:29:02.160> if<00:29:02.280> you<00:29:02.360> open<00:29:02.600> that,<00:29:03.320> you<00:29:03.440> get<00:29:03.560> a\nAnd then if you open that, you get a\nAnd then if you open that, you get a little<00:29:03.840> bitmap<00:29:04.160> visualizer.\nlittle bitmap visualizer.\nlittle bitmap visualizer. Um<00:29:06.760> and<00:29:07.040> you<00:29:07.160> can<00:29:07.720> just<00:29:07.920> like<00:29:08.080> everything,<00:29:08.400> you\nUm and you can just like everything, you\nUm and you can just like everything, you can<00:29:08.600> pull<00:29:08.760> it<00:29:08.880> out<00:29:09.120> as<00:29:09.240> its<00:29:09.400> own<00:29:09.520> tab.<00:29:10.160> An\ncan pull it out as its own tab. An\ncan pull it out as its own tab. An alternative<00:29:10.800> way<00:29:10.960> of<00:29:11.080> creating<00:29:11.400> this<00:29:11.520> tab\nalternative way of creating this tab\nalternative way of creating this tab would<00:29:11.840> have<00:29:11.960> been<00:29:12.640> just<00:29:12.840> create<00:29:13.040> a<00:29:13.080> bitmap<00:29:13.480> tab\nwould have been just create a bitmap tab\nwould have been just create a bitmap tab and<00:29:14.040> put<00:29:14.160> in<00:29:14.280> here<00:29:15.040> pixels<00:29:15.720> 18<00:29:16.120> by<00:29:16.320> 18.<00:29:16.960> These\nand put in here pixels 18 by 18. These\nand put in here pixels 18 by 18. These are<00:29:17.240> two<00:29:17.880> things<00:29:18.360> that<00:29:18.520> mean<00:29:18.680> exactly<00:29:19.120> the\nare two things that mean exactly the\nare two things that mean exactly the same<00:29:19.440> thing.\nsame thing.\nsame thing. So,\nSo,\nSo, um\num\num you<00:29:22.280> can<00:29:22.400> see<00:29:22.520> it's<00:29:22.640> just<00:29:22.800> like<00:29:23.000> initialized\nyou can see it's just like initialized\nyou can see it's just like initialized as<00:29:23.560> basically<00:29:23.920> just<00:29:24.080> garbage<00:29:24.400> right<00:29:24.560> now,<00:29:24.880> but\nas basically just garbage right now, but\nas basically just garbage right now, but as<00:29:25.200> I<00:29:25.280> step,<00:29:25.920> you<00:29:26.040> can<00:29:26.200> see<00:29:26.440> these<00:29:26.680> things\nas I step, you can see these things\nas I step, you can see these things start<00:29:27.600> to<00:29:28.120> start<00:29:28.320> to<00:29:28.800> see<00:29:28.920> these<00:29:29.040> pixels<00:29:29.320> start\nstart to start to see these pixels start\nstart to start to see these pixels start to<00:29:29.600> fill<00:29:29.840> out.<00:29:30.520> Um\nto fill out. Um\nto fill out. Um and<00:29:33.000> here's<00:29:33.320> a<00:29:33.360> loop<00:29:33.720> which<00:29:33.920> does<00:29:34.120> something\nand here's a loop which does something\nand here's a loop which does something to<00:29:34.440> all<00:29:34.520> the<00:29:34.600> pixels,<00:29:35.000> so<00:29:35.120> I<00:29:35.160> can<00:29:35.280> set<00:29:35.440> a\nto all the pixels, so I can set a\nto all the pixels, so I can set a breakpoint<00:29:35.880> here.<00:29:36.120> I'll<00:29:36.200> hit<00:29:36.320> F5,<00:29:36.840> run<00:29:37.000> to\nbreakpoint here. I'll hit F5, run to\nbreakpoint here. I'll hit F5, run to that<00:29:37.240> breakpoint.<00:29:37.960> It<00:29:38.160> like<00:29:38.440> shifted<00:29:38.840> all<00:29:38.960> the\nthat breakpoint. It like shifted all the\nthat breakpoint. It like shifted all the pixels<00:29:39.400> over.<00:29:40.360> Um\npixels over. Um\npixels over. Um uh<00:29:41.440> shifted<00:29:41.800> the<00:29:41.880> components<00:29:42.360> of<00:29:42.440> the<00:29:42.520> color\nuh shifted the components of the color\nuh shifted the components of the color of<00:29:43.160> of<00:29:43.240> the<00:29:43.320> pixel<00:29:43.600> colors<00:29:43.880> over.<00:29:44.640> Does<00:29:44.920> same\nof of the pixel colors over. Does same\nof of the pixel colors over. Does same thing<00:29:45.320> here<00:29:45.800> and<00:29:45.920> then<00:29:46.080> finally<00:29:46.440> does<00:29:46.640> it<00:29:46.720> once\nthing here and then finally does it once\nthing here and then finally does it once again<00:29:47.200> to<00:29:47.320> return<00:29:47.600> it<00:29:47.680> back<00:29:47.880> to<00:29:47.960> its<00:29:48.080> original\nagain to return it back to its original\nagain to return it back to its original values.\nvalues.\nvalues. Um\nUm\nUm So,<00:29:50.960> yeah.<00:29:51.520> Finally,<00:29:52.600> um\nSo, yeah. Finally, um\nSo, yeah. Finally, um >> [laughter]\n>> [laughter]\n>> [laughter] >> there's<00:29:55.040> this<00:29:55.240> one<00:29:55.560> which<00:29:55.800> is<00:29:56.000> a<00:29:56.080> bunch<00:29:56.320> you\n>> there's this one which is a bunch you\n>> there's this one which is a bunch you can<00:29:56.560> tell<00:29:57.040> I<00:29:57.080> I\ncan tell I I\ncan tell I I I<00:29:57.880> say<00:29:58.080> 3D<00:29:58.440> geometry.<00:29:59.080> I've<00:29:59.200> got<00:29:59.320> a<00:29:59.360> bunch<00:29:59.520> of\nI say 3D geometry. I've got a bunch of\nI say 3D geometry. I've got a bunch of vertex<00:29:59.920> data.\nvertex data.\nvertex data. Um<00:30:01.000> I've<00:30:01.120> got<00:30:01.680> some<00:30:01.880> index<00:30:02.200> data<00:30:03.080> and<00:30:03.960> uh\nUm I've got some index data and uh\nUm I've got some index data and uh if<00:30:04.800> I<00:30:04.880> So,<00:30:05.040> if<00:30:05.160> I<00:30:05.280> want<00:30:05.520> to<00:30:05.640> run<00:30:05.920> through<00:30:06.520> the\nif I So, if I want to run through the\nif I So, if I want to run through the the<00:30:07.680> initialization<00:30:08.360> of<00:30:08.440> those<00:30:08.560> big<00:30:08.760> tables\nthe initialization of those big tables\nthe initialization of those big tables and<00:30:09.720> this<00:30:09.840> is<00:30:09.920> a<00:30:09.960> pretty<00:30:10.160> complicated\nand this is a pretty complicated\nand this is a pretty complicated expression,<00:30:11.040> so<00:30:11.160> we've<00:30:11.280> got<00:30:11.840> this<00:30:12.040> geo<00:30:12.400> 3D\nexpression, so we've got this geo 3D\nexpression, so we've got this geo 3D view<00:30:13.640> which<00:30:13.760> is<00:30:13.840> applied<00:30:14.160> to<00:30:14.240> the<00:30:14.360> index\nview which is applied to the index\nview which is applied to the index buffer<00:30:15.160> and<00:30:15.280> then<00:30:15.400> you<00:30:15.440> have<00:30:15.560> a<00:30:15.600> vertex\nbuffer and then you have a vertex\nbuffer and then you have a vertex buffer.\nbuffer.\nbuffer. But<00:30:17.240> anyways,\nBut anyways,\nBut anyways, uh<00:30:18.640> then<00:30:18.880> you<00:30:19.000> get<00:30:19.200> this<00:30:19.560> and<00:30:19.680> that's<00:30:19.880> the\nuh then you get this and that's the\nuh then you get this and that's the actual\nactual\nactual um<00:30:21.680> that's<00:30:21.880> the<00:30:21.960> actual<00:30:22.640> like<00:30:22.840> geometry<00:30:23.280> data.\num that's the actual like geometry data.\num that's the actual like geometry data. So,\nSo,\nSo, um\num\num So,<00:30:26.720> yeah,<00:30:26.840> those<00:30:27.040> are<00:30:27.120> the<00:30:27.200> fancier\nSo, yeah, those are the fancier\nSo, yeah, those are the fancier visualizers.<00:30:28.440> Um<00:30:28.840> the<00:30:28.960> geometry<00:30:29.400> one<00:30:29.520> is\nvisualizers. Um the geometry one is\nvisualizers. Um the geometry one is still<00:30:30.120> like<00:30:30.360> all<00:30:30.520> of<00:30:30.600> these<00:30:30.760> are<00:30:30.880> pretty<00:30:31.080> much\nstill like all of these are pretty much\nstill like all of these are pretty much heavily<00:30:31.560> in<00:30:31.680> progress.<00:30:32.360> The<00:30:32.440> ones<00:30:32.640> that<00:30:32.800> are\nheavily in progress. The ones that are\nheavily in progress. The ones that are not<00:30:33.840> as<00:30:33.960> heavily<00:30:34.200> in<00:30:34.320> progress<00:30:34.680> are<00:30:34.760> the<00:30:34.840> ones\nnot as heavily in progress are the ones\nnot as heavily in progress are the ones that<00:30:35.160> are<00:30:35.280> like<00:30:35.480> super<00:30:35.800> super<00:30:36.080> common.<00:30:36.440> Like\nthat are like super super common. Like\nthat are like super super common. Like obviously<00:30:36.880> the<00:30:36.960> watch<00:30:37.160> window,<00:30:37.960> I<00:30:38.040> put<00:30:38.160> a<00:30:38.200> lot\nobviously the watch window, I put a lot\nobviously the watch window, I put a lot of<00:30:38.440> work<00:30:38.560> into<00:30:38.720> the<00:30:38.800> memory<00:30:39.120> view<00:30:39.360> cuz<00:30:39.480> these\nof work into the memory view cuz these\nof work into the memory view cuz these are<00:30:39.720> really<00:30:39.920> common<00:30:40.240> debugging<00:30:40.640> features\nare really common debugging features\nare really common debugging features that<00:30:41.080> people<00:30:41.280> expect,<00:30:41.760> but<00:30:41.960> obviously<00:30:42.360> long\nthat people expect, but obviously long\nthat people expect, but obviously long term<00:30:42.920> the<00:30:43.160> the<00:30:43.280> idea<00:30:43.560> is<00:30:43.720> like,<00:30:43.920> \"Hey,<00:30:44.080> this\nterm the the idea is like, \"Hey, this\nterm the the idea is like, \"Hey, this bitmap<00:30:44.480> visualizer<00:30:44.880> will<00:30:45.000> just<00:30:45.160> end<00:30:45.320> up<00:30:45.400> being\nbitmap visualizer will just end up being\nbitmap visualizer will just end up being like<00:30:46.640> having<00:30:46.920> all<00:30:47.000> the<00:30:47.080> things<00:30:47.320> that<00:30:47.440> you\nlike having all the things that you\nlike having all the things that you really<00:30:47.720> want<00:30:48.240> um<00:30:48.680> for<00:30:49.040> for<00:30:49.600> dealing<00:30:49.840> with\nreally want um for for dealing with\nreally want um for for dealing with bitmap<00:30:50.280> data.\"\nbitmap data.\"\nbitmap data.\" Um<00:30:51.400> and<00:30:51.520> then<00:30:51.640> in<00:30:51.680> the<00:30:51.760> future<00:30:52.000> we'll<00:30:52.120> have\nUm and then in the future we'll have\nUm and then in the future we'll have tons<00:30:52.520> of<00:30:52.600> other<00:30:52.760> kinds<00:30:53.040> of<00:30:53.120> visualizers<00:30:53.720> like,\ntons of other kinds of visualizers like,\ntons of other kinds of visualizers like, you<00:30:54.200> know,<00:30:54.320> for<00:30:54.440> sound<00:30:54.800> data<00:30:55.240> and<00:30:55.640> the<00:30:55.840> 3D\nyou know, for sound data and the 3D\nyou know, for sound data and the 3D geometry<00:30:56.480> one<00:30:56.640> will<00:30:56.800> become<00:30:57.040> a<00:30:57.080> lot<00:30:57.240> more\ngeometry one will become a lot more\ngeometry one will become a lot more sophisticated<00:30:58.120> and<00:30:58.480> and<00:30:58.760> 2D<00:30:59.040> plots<00:30:59.480> and<00:30:59.560> like\nsophisticated and and 2D plots and like\nsophisticated and and 2D plots and like all<00:30:59.800> these<00:30:59.960> kinds<00:31:00.160> of<00:31:00.240> things<00:31:00.440> are<00:31:00.520> on<00:31:00.640> the\nall these kinds of things are on the\nall these kinds of things are on the table.\ntable.\ntable. Um<00:31:02.280> that's<00:31:02.440> what<00:31:02.520> the<00:31:02.600> whole<00:31:02.800> architecture<00:31:03.320> is\nUm that's what the whole architecture is\nUm that's what the whole architecture is for.<00:31:04.200> Um\nfor. Um\nfor. Um >> So,<00:31:04.640> it's<00:31:04.840> like<00:31:05.520> Rad<00:31:05.760> Debugger<00:31:06.240> is<00:31:06.400> like<00:31:06.800> like\n>> So, it's like Rad Debugger is like like\n>> So, it's like Rad Debugger is like like a<00:31:07.080> mini<00:31:07.440> game<00:31:07.840> engine.\na mini game engine.\na mini game engine. >> [laughter]\n>> [laughter]\n>> [laughter] >> You<00:31:10.920> could<00:31:11.320> You<00:31:11.440> could<00:31:11.760> think<00:31:11.960> of<00:31:12.040> it<00:31:12.120> that\n>> You could You could think of it that\n>> You could You could think of it that way,<00:31:12.560> maybe.<00:31:12.960> I<00:31:13.040> mean,<00:31:13.520> you<00:31:13.640> know,<00:31:13.800> I<00:31:13.840> I<00:31:14.560> I\nway, maybe. I mean, you know, I I I\nway, maybe. I mean, you know, I I I wouldn't<00:31:14.800> be<00:31:14.920> so<00:31:15.040> presumptuous<00:31:15.600> as<00:31:15.760> to<00:31:15.840> say\nwouldn't be so presumptuous as to say\nwouldn't be so presumptuous as to say that<00:31:16.280> unlike<00:31:16.640> the<00:31:16.920> people<00:31:17.200> at<00:31:17.320> Anthropic,<00:31:17.840> but\nthat unlike the people at Anthropic, but\nthat unlike the people at Anthropic, but um<00:31:19.680> about<00:31:20.040> Claude.<00:31:20.600> Uh<00:31:20.840> but<00:31:21.760> it<00:31:21.960> is<00:31:22.120> a<00:31:22.160> lot<00:31:22.480> I\num about Claude. Uh but it is a lot I\num about Claude. Uh but it is a lot I would<00:31:22.720> say<00:31:22.880> it's<00:31:23.000> a<00:31:23.040> lot<00:31:23.280> closer<00:31:23.640> to<00:31:23.800> a<00:31:23.880> little\nwould say it's a lot closer to a little\nwould say it's a lot closer to a little game<00:31:24.320> engine<00:31:24.640> than<00:31:25.120> than<00:31:25.440> maybe<00:31:25.680> Claude<00:31:25.960> Code\ngame engine than than maybe Claude Code\ngame engine than than maybe Claude Code is,<00:31:26.360> but\nis, but\nis, but but<00:31:28.240> anyways,\nbut anyways,\nbut anyways, um\num\num so<00:31:30.520> uh<00:31:30.640> I<00:31:30.680> guess<00:31:30.920> one<00:31:31.120> other<00:31:31.320> thing<00:31:31.520> that<00:31:31.640> I\nso uh I guess one other thing that I\nso uh I guess one other thing that I should<00:31:32.040> point<00:31:32.320> out<00:31:32.600> is<00:31:33.080> um<00:31:33.280> some<00:31:33.440> of<00:31:33.520> these\nshould point out is um some of these\nshould point out is um some of these things<00:31:33.880> which<00:31:34.000> I'm<00:31:34.120> sure<00:31:34.400> people<00:31:34.680> in<00:31:34.760> the<00:31:34.800> chat\nthings which I'm sure people in the chat\nthings which I'm sure people in the chat have<00:31:35.160> probably<00:31:35.560> already<00:31:35.720> spotted,<00:31:36.160> which<00:31:36.280> is\nhave probably already spotted, which is\nhave probably already spotted, which is like<00:31:36.640> these<00:31:37.160> uh\nlike these uh\nlike these uh these<00:31:39.000> like<00:31:39.280> in-source<00:31:39.960> annotations<00:31:40.800> of<00:31:41.080> Rad\nthese like in-source annotations of Rad\nthese like in-source annotations of Rad Debugger<00:31:41.840> info.<00:31:42.520> So,<00:31:42.640> you<00:31:42.720> can<00:31:42.840> see<00:31:43.040> right\nDebugger info. So, you can see right\nDebugger info. So, you can see right here<00:31:43.520> I'm<00:31:43.640> saying<00:31:43.880> Rad<00:31:44.080> DBG<00:31:44.440> entry<00:31:44.760> point<00:31:45.400> mule\nhere I'm saying Rad DBG entry point mule\nhere I'm saying Rad DBG entry point mule main.<00:31:46.440> Um<00:31:46.960> and<00:31:47.040> you<00:31:47.120> might<00:31:47.240> be<00:31:47.360> wondering\nmain. Um and you might be wondering\nmain. Um and you might be wondering like,\nlike,\nlike, \"What<00:31:48.800> is<00:31:48.920> that<00:31:49.040> about?\"<00:31:49.760> Well,<00:31:49.920> you<00:31:49.960> can<00:31:50.080> see\n\"What is that about?\" Well, you can see\n\"What is that about?\" Well, you can see like<00:31:50.440> when<00:31:50.560> I'm<00:31:50.680> not<00:31:50.920> debugging<00:31:51.280> this\nlike when I'm not debugging this\nlike when I'm not debugging this program,\nprogram,\nprogram, so<00:31:53.240> you<00:31:53.360> can<00:31:53.480> see<00:31:53.600> I'm<00:31:53.760> I'm<00:31:53.880> debugging<00:31:54.320> this\nso you can see I'm I'm debugging this\nso you can see I'm I'm debugging this mule<00:31:54.840> main.exe,\nmule main.exe,\nmule main.exe, and<00:31:57.160> um<00:31:57.680> if<00:31:57.800> I<00:31:57.880> step<00:31:58.160> into<00:31:58.400> it,<00:31:59.080> you'll<00:31:59.240> see\nand um if I step into it, you'll see\nand um if I step into it, you'll see that<00:31:59.680> my<00:31:59.880> thread<00:32:00.320> first<00:32:00.720> stops.<00:32:01.200> It<00:32:01.320> says,\nthat my thread first stops. It says,\nthat my thread first stops. It says, \"Stopped<00:32:01.840> at<00:32:01.920> entry<00:32:02.160> point.\"<00:32:02.440> And<00:32:02.520> you<00:32:02.560> might\n\"Stopped at entry point.\" And you might\n\"Stopped at entry point.\" And you might see,<00:32:02.920> \"Hey,<00:32:03.120> mule<00:32:03.360> main.\"<00:32:03.600> It's<00:32:03.720> like<00:32:03.880> weird\nsee, \"Hey, mule main.\" It's like weird\nsee, \"Hey, mule main.\" It's like weird cuz<00:32:04.560> when<00:32:04.680> I<00:32:04.760> learned<00:32:05.000> how<00:32:05.080> to<00:32:05.160> write<00:32:05.400> C,<00:32:05.720> it\ncuz when I learned how to write C, it\ncuz when I learned how to write C, it had<00:32:06.000> to<00:32:06.040> be<00:32:06.240> int<00:32:06.520> main\nhad to be int main\nhad to be int main uh<00:32:08.480> or,<00:32:08.880> you<00:32:08.960> know,<00:32:09.080> if<00:32:09.160> you're<00:32:09.240> on<00:32:09.360> Windows,\nuh or, you know, if you're on Windows,\nuh or, you know, if you're on Windows, it's<00:32:09.880> like<00:32:10.240> it's<00:32:10.440> like<00:32:10.640> WinMain,<00:32:11.240> it's<00:32:11.360> like\nit's like it's like WinMain, it's like\nit's like it's like WinMain, it's like the<00:32:11.560> WinMain<00:32:11.880> function.<00:32:12.480> And<00:32:12.640> sure<00:32:12.800> enough,\nthe WinMain function. And sure enough,\nthe WinMain function. And sure enough, it's<00:32:13.200> like,<00:32:13.360> \"Hey,<00:32:13.600> if<00:32:13.800> I<00:32:13.960> look<00:32:14.160> at<00:32:14.200> my<00:32:14.320> call\nit's like, \"Hey, if I look at my call\nit's like, \"Hey, if I look at my call stack,<00:32:14.880> I<00:32:14.960> see<00:32:15.280> I<00:32:15.360> have<00:32:15.640> WinMain<00:32:16.000> right<00:32:16.160> here.\"\nstack, I see I have WinMain right here.\"\nstack, I see I have WinMain right here.\" And<00:32:16.920> that<00:32:17.040> is<00:32:17.160> a<00:32:17.240> function.<00:32:17.600> Hey,<00:32:17.760> that's<00:32:17.960> even\nAnd that is a function. Hey, that's even\nAnd that is a function. Hey, that's even in<00:32:18.240> the<00:32:18.280> same<00:32:18.480> source<00:32:18.760> file.<00:32:19.000> So,<00:32:19.160> shouldn't\nin the same source file. So, shouldn't\nin the same source file. So, shouldn't in<00:32:20.200> most<00:32:20.440> debuggers<00:32:20.880> if<00:32:21.000> you<00:32:21.120> ran<00:32:21.400> this,<00:32:21.680> you\nin most debuggers if you ran this, you\nin most debuggers if you ran this, you would<00:32:21.880> end<00:32:22.160> you<00:32:22.360> your<00:32:22.520> thread<00:32:22.760> would<00:32:22.880> end<00:32:23.040> up\nwould end you your thread would end up\nwould end you your thread would end up here,<00:32:23.600> right?\nhere, right?\nhere, right? And<00:32:25.520> so,<00:32:25.720> that<00:32:26.320> little<00:32:26.760> Rad<00:32:26.960> DBG<00:32:27.280> entry<00:32:27.560> point\nAnd so, that little Rad DBG entry point\nAnd so, that little Rad DBG entry point thing<00:32:28.080> is<00:32:28.240> actually<00:32:28.560> sticking<00:32:29.000> something\nthing is actually sticking something\nthing is actually sticking something into<00:32:29.520> the<00:32:29.600> executable<00:32:30.480> that<00:32:30.640> the<00:32:30.720> debugger\ninto the executable that the debugger\ninto the executable that the debugger um<00:32:32.440> that<00:32:32.560> the<00:32:32.640> debugger<00:32:33.000> reads.<00:32:33.800> And<00:32:33.920> so,<00:32:34.040> the\num that the debugger reads. And so, the\num that the debugger reads. And so, the debugger<00:32:34.480> knows,<00:32:34.920> \"Hey,<00:32:35.640> for<00:32:35.800> this<00:32:36.000> program,\ndebugger knows, \"Hey, for this program,\ndebugger knows, \"Hey, for this program, the<00:32:36.640> entry<00:32:36.840> point<00:32:37.120> symbol<00:32:37.480> is<00:32:37.640> not<00:32:37.840> just\nthe entry point symbol is not just\nthe entry point symbol is not just WinMain,<00:32:38.800> it's<00:32:38.960> actually<00:32:39.280> mule<00:32:39.560> main.<00:32:40.160> So,\nWinMain, it's actually mule main. So,\nWinMain, it's actually mule main. So, this<00:32:40.560> it<00:32:40.680> sticks<00:32:40.960> this<00:32:41.120> thing<00:32:41.360> into<00:32:41.640> the\nthis it sticks this thing into the\nthis it sticks this thing into the actual<00:32:42.080> executable.<00:32:42.920> In<00:32:43.000> fact,<00:32:43.280> I<00:32:43.320> wonder<00:32:43.600> if\nactual executable. In fact, I wonder if\nactual executable. In fact, I wonder if I<00:32:43.800> can<00:32:43.920> even<00:32:44.120> show<00:32:45.040> like<00:32:45.200> let's<00:32:45.400> do\nI can even show like let's do\nI can even show like let's do radbg<00:32:47.400> markup<00:32:48.040> to<00:32:48.200> I<00:32:48.240> don't<00:32:48.400> have<00:32:48.680> it.\nradbg markup to I don't have it.\nradbg markup to I don't have it. Uh<00:32:49.960> markup.h,<00:32:50.680> yeah.\nUh markup.h, yeah.\nUh markup.h, yeah. If<00:32:51.880> we<00:32:52.080> look<00:32:52.440> at<00:32:52.600> like<00:32:52.840> what<00:32:53.000> this<00:32:53.160> thing<00:32:53.320> would\nIf we look at like what this thing would\nIf we look at like what this thing would actually<00:32:53.720> be<00:32:53.920> like<00:32:54.280> uh<00:32:54.800> entry<00:32:55.120> point,\nactually be like uh entry point,\nactually be like uh entry point, you<00:32:56.800> can<00:32:56.920> see<00:32:57.080> what<00:32:57.280> this<00:32:57.440> macro<00:32:57.800> actually\nyou can see what this macro actually\nyou can see what this macro actually does<00:32:58.520> is<00:32:58.840> it<00:32:59.000> says<00:32:59.240> radbg<00:33:00.160> exec<00:33:00.520> data,<00:33:00.800> which<00:33:00.960> I\ndoes is it says radbg exec data, which I\ndoes is it says radbg exec data, which I can<00:33:01.120> explain<00:33:01.400> what<00:33:01.480> that<00:33:01.720> is.<00:33:02.240> And<00:33:02.360> then<00:33:02.440> it's\ncan explain what that is. And then it's\ncan explain what that is. And then it's a<00:33:02.640> character<00:33:03.720> a<00:33:03.800> character<00:33:04.240> array,<00:33:04.520> so\na character a character array, so\na character a character array, so generates<00:33:05.360> uh<00:33:05.720> a<00:33:05.800> name<00:33:06.120> here<00:33:06.640> using<00:33:06.920> this\ngenerates uh a name here using this\ngenerates uh a name here using this thing,<00:33:07.240> but<00:33:07.360> it's<00:33:07.440> a<00:33:07.520> character<00:33:07.920> array,<00:33:08.800> has\nthing, but it's a character array, has\nthing, but it's a character array, has some<00:33:09.200> ID,<00:33:09.960> and<00:33:10.080> then<00:33:10.200> it<00:33:10.320> sticks<00:33:10.640> in<00:33:11.360> entry\nsome ID, and then it sticks in entry\nsome ID, and then it sticks in entry point<00:33:12.000> colon<00:33:12.400> and<00:33:12.480> then<00:33:12.640> whatever<00:33:12.880> the\npoint colon and then whatever the\npoint colon and then whatever the arguments<00:33:13.400> were<00:33:13.840> as<00:33:14.040> a<00:33:14.080> string<00:33:14.360> literal.\narguments were as a string literal.\narguments were as a string literal. Uh<00:33:15.960> so,<00:33:16.680> that<00:33:16.920> actually<00:33:17.160> gets<00:33:17.320> baked<00:33:17.560> into\nUh so, that actually gets baked into\nUh so, that actually gets baked into this<00:33:18.320> radbg<00:33:18.840> exec<00:33:19.200> data<00:33:19.520> thing.<00:33:20.440> That\nthis radbg exec data thing. That\nthis radbg exec data thing. That actually<00:33:21.320> tells<00:33:22.160> this<00:33:22.640> uh<00:33:22.720> tells<00:33:22.920> the<00:33:23.000> C\nactually tells this uh tells the C\nactually tells this uh tells the C compiler<00:33:23.480> to<00:33:23.600> stick<00:33:23.800> this<00:33:23.960> into<00:33:24.200> a<00:33:24.240> custom\ncompiler to stick this into a custom\ncompiler to stick this into a custom expression.\nexpression.\nexpression. Uh<00:33:26.200> or<00:33:26.320> sorry,<00:33:26.560> not<00:33:26.760> not<00:33:26.880> expression,<00:33:27.400> a\nUh or sorry, not not expression, a\nUh or sorry, not not expression, a custom<00:33:27.800> section.<00:33:28.920> And<00:33:29.560> uh<00:33:29.760> we<00:33:29.880> can<00:33:30.000> see<00:33:30.480> that\ncustom section. And uh we can see that\ncustom section. And uh we can see that uh\nuh\nuh radbg<00:33:32.520> exec<00:33:32.920> data<00:33:33.560> is<00:33:33.720> right<00:33:33.880> here<00:33:34.040> specified\nradbg exec data is right here specified\nradbg exec data is right here specified as<00:33:35.000> we<00:33:35.080> have<00:33:35.840> uh<00:33:35.920> we<00:33:36.080> tell<00:33:36.400> basically<00:33:36.720> the\nas we have uh we tell basically the\nas we have uh we tell basically the compiler,<00:33:37.160> \"Hey,<00:33:37.280> I<00:33:37.320> need<00:33:37.480> a<00:33:37.520> section\ncompiler, \"Hey, I need a section\ncompiler, \"Hey, I need a section uh<00:33:39.000> .radbg<00:33:39.800> needs<00:33:40.000> to<00:33:40.080> be<00:33:40.200> readable<00:33:40.520> and\nuh .radbg needs to be readable and\nuh .radbg needs to be readable and writable.\"<00:33:41.440> And<00:33:41.560> then<00:33:42.120> radbg<00:33:42.560> exec<00:33:43.080> data<00:33:43.520> is\nwritable.\" And then radbg exec data is\nwritable.\" And then radbg exec data is just<00:33:43.840> a<00:33:43.880> declspec.<00:33:44.840> This<00:33:45.040> is<00:33:45.160> for<00:33:45.560> MSVC<00:33:45.960> and\njust a declspec. This is for MSVC and\njust a declspec. This is for MSVC and Clang<00:33:46.320> on<00:33:46.440> Windows,<00:33:46.840> but<00:33:46.960> you<00:33:47.040> can<00:33:47.120> do\nClang on Windows, but you can do\nClang on Windows, but you can do equivalent<00:33:47.640> things<00:33:47.880> on<00:33:48.200> on<00:33:48.480> the<00:33:48.560> other\nequivalent things on on the other\nequivalent things on on the other compilers.<00:33:49.640> Hey,<00:33:49.800> declspec,<00:33:50.360> make<00:33:50.520> sure<00:33:50.760> when\ncompilers. Hey, declspec, make sure when\ncompilers. Hey, declspec, make sure when you<00:33:51.000> allocate<00:33:51.360> this<00:33:51.480> global<00:33:51.720> variable<00:33:52.240> that\nyou allocate this global variable that\nyou allocate this global variable that you<00:33:52.480> put<00:33:52.640> it<00:33:52.760> inside<00:33:53.120> of<00:33:53.200> the<00:33:53.280> .radbg<00:33:54.000> section.\nyou put it inside of the .radbg section.\nyou put it inside of the .radbg section. That's<00:33:54.520> all<00:33:54.640> that<00:33:54.880> radbg<00:33:55.320> exec<00:33:55.680> data<00:33:55.960> is,<00:33:56.320> so\nThat's all that radbg exec data is, so\nThat's all that radbg exec data is, so it<00:33:56.600> sticks<00:33:56.880> that<00:33:57.120> info<00:33:57.560> into<00:33:57.800> the<00:33:57.880> executable.\nit sticks that info into the executable.\nit sticks that info into the executable. And<00:33:59.000> as<00:33:59.080> a<00:33:59.120> consequence,\nAnd as a consequence,\nAnd as a consequence, uh<00:34:00.840> the<00:34:00.920> debugger,<00:34:01.360> when<00:34:01.480> it<00:34:01.600> loads<00:34:01.800> your\nuh the debugger, when it loads your\nuh the debugger, when it loads your program,<00:34:02.240> can<00:34:02.400> know,<00:34:02.920> \"Hey,<00:34:03.200> the<00:34:03.280> entry<00:34:03.520> point\nprogram, can know, \"Hey, the entry point\nprogram, can know, \"Hey, the entry point is<00:34:03.800> actually<00:34:04.080> here.\"\nis actually here.\"\nis actually here.\" Um\nUm\nUm So,<00:34:06.960> there's<00:34:07.160> other<00:34:07.480> kinds<00:34:07.760> of<00:34:08.159> interop<00:34:08.639> that\nSo, there's other kinds of interop that\nSo, there's other kinds of interop that your<00:34:08.919> program<00:34:09.240> can<00:34:09.360> do<00:34:09.520> with<00:34:09.679> the<00:34:09.720> debugger.\nyour program can do with the debugger.\nyour program can do with the debugger. You<00:34:10.120> can<00:34:10.240> see<00:34:10.399> a<00:34:10.440> few<00:34:10.639> of<00:34:10.720> them<00:34:10.879> right<00:34:11.080> here.<00:34:11.960> Um\nYou can see a few of them right here. Um\nYou can see a few of them right here. Um so,<00:34:12.240> by<00:34:12.399> default,<00:34:12.840> your<00:34:12.960> threads<00:34:13.240> will<00:34:13.320> just\nso, by default, your threads will just\nso, by default, your threads will just be<00:34:13.560> colored<00:34:13.840> with<00:34:13.960> this<00:34:14.080> like<00:34:14.240> little<00:34:14.440> yellow\nbe colored with this like little yellow\nbe colored with this like little yellow color.<00:34:15.600> Um\ncolor. Um\ncolor. Um but<00:34:16.440> if<00:34:16.560> I<00:34:16.639> want<00:34:16.800> to<00:34:16.879> And<00:34:17.120> also,<00:34:17.480> it'll<00:34:17.679> just\nbut if I want to And also, it'll just\nbut if I want to And also, it'll just the<00:34:18.440> debugger<00:34:18.760> assumes<00:34:19.120> this<00:34:19.240> thing<00:34:19.399> is<00:34:19.520> the\nthe debugger assumes this thing is the\nthe debugger assumes this thing is the main<00:34:19.840> thread<00:34:20.159> cuz<00:34:20.320> it<00:34:20.480> I<00:34:20.560> mean,<00:34:20.720> it<00:34:20.800> is<00:34:20.919> the\nmain thread cuz it I mean, it is the\nmain thread cuz it I mean, it is the main<00:34:21.159> thread,<00:34:21.399> but<00:34:21.520> it'll<00:34:21.679> just<00:34:21.919> name<00:34:22.159> it<00:34:22.360> main\nmain thread, but it'll just name it main\nmain thread, but it'll just name it main thread.<00:34:23.320> But<00:34:23.399> if<00:34:23.480> you<00:34:23.560> wanted<00:34:23.760> to<00:34:23.840> have<00:34:23.919> a\nthread. But if you wanted to have a\nthread. But if you wanted to have a custom<00:34:24.280> name,<00:34:24.480> you<00:34:24.520> could<00:34:24.639> say,<00:34:24.800> \"Hey,<00:34:25.399> uh\ncustom name, you could say, \"Hey, uh\ncustom name, you could say, \"Hey, uh radbg<00:34:25.960> thread<00:34:26.240> name.\"\nradbg thread name.\"\nradbg thread name.\" Um<00:34:27.679> right<00:34:27.879> there,<00:34:28.080> and<00:34:28.320> and<00:34:28.560> that's<00:34:28.720> going<00:34:28.840> to\nUm right there, and and that's going to\nUm right there, and and that's going to be<00:34:29.000> mule<00:34:29.280> main<00:34:29.520> thread,<00:34:29.800> and<00:34:29.879> that<00:34:30.040> shows<00:34:30.280> up\nbe mule main thread, and that shows up\nbe mule main thread, and that shows up here.<00:34:30.960> And<00:34:31.080> then<00:34:31.159> if<00:34:31.280> I<00:34:31.360> want<00:34:31.560> to<00:34:31.679> color<00:34:32.000> this\nhere. And then if I want to color this\nhere. And then if I want to color this thread<00:34:32.399> a<00:34:32.440> specific<00:34:32.879> way,<00:34:33.120> I<00:34:33.200> can<00:34:33.480> I<00:34:33.560> can<00:34:33.720> do\nthread a specific way, I can I can do\nthread a specific way, I can I can do that<00:34:34.159> also<00:34:34.879> with<00:34:35.040> this<00:34:35.200> markup<00:34:35.560> stuff.<00:34:36.320> And<00:34:36.440> so\nthat also with this markup stuff. And so\nthat also with this markup stuff. And so when<00:34:36.800> I<00:34:36.840> step<00:34:37.080> over<00:34:37.200> that,<00:34:37.440> it'll<00:34:37.840> color<00:34:38.120> my\nwhen I step over that, it'll color my\nwhen I step over that, it'll color my thread.\nthread.\nthread. Um\nUm\nUm And<00:34:41.720> then<00:34:42.480> there's<00:34:42.679> other<00:34:42.840> stuff,<00:34:43.040> too.<00:34:43.280> So\nAnd then there's other stuff, too. So\nAnd then there's other stuff, too. So >> [clears throat]\n>> [clears throat]\n>> [clears throat] >> um\n>> [snorts]\n>> [snorts]\n>> [snorts] >> For<00:34:47.760> example,<00:34:48.560> if<00:34:48.720> I<00:34:48.800> go<00:34:48.960> down<00:34:49.560> to\n>> For example, if I go down to\n>> For example, if I go down to uh\nuh\nuh Let<00:34:51.760> me<00:34:51.879> look<00:34:52.120> at\nLet me look at\nLet me look at where<00:34:53.760> what<00:34:53.960> example<00:34:54.360> am<00:34:54.440> I<00:34:54.480> looking<00:34:54.760> for?<00:34:55.360> Uh\nwhere what example am I looking for? Uh\nwhere what example am I looking for? Uh dynamic<00:34:56.000> array.\ndynamic array.\ndynamic array. So<00:34:57.320> dynamic<00:34:57.840> array,<00:34:58.160> if<00:34:58.320> we<00:34:58.440> look<00:34:58.680> at<00:34:58.840> what\nSo dynamic array, if we look at what\nSo dynamic array, if we look at what this<00:34:59.440> type<00:34:59.760> is,<00:35:00.000> this<00:35:00.160> is<00:35:00.280> a<00:35:00.320> structure.\nthis type is, this is a structure.\nthis type is, this is a structure. Right?<00:35:01.880> And<00:35:02.000> this<00:35:02.120> structure<00:35:02.480> has<00:35:02.640> a<00:35:02.720> pointer\nRight? And this structure has a pointer\nRight? And this structure has a pointer to<00:35:04.480> a<00:35:04.560> pair\nto a pair\nto a pair and<00:35:05.800> it<00:35:05.880> has<00:35:06.040> a<00:35:06.080> count.\nand it has a count.\nand it has a count. So<00:35:07.240> like<00:35:07.920> usual<00:35:08.280> C<00:35:08.400> programs,<00:35:09.160> you<00:35:09.240> know,<00:35:09.360> if\nSo like usual C programs, you know, if\nSo like usual C programs, you know, if you<00:35:09.680> if<00:35:09.840> you<00:35:09.920> want<00:35:10.040> to<00:35:10.120> have<00:35:10.200> a<00:35:10.240> slice<00:35:10.640> type,\nyou if you want to have a slice type,\nyou if you want to have a slice type, you<00:35:11.000> need<00:35:11.120> a<00:35:11.200> pointer<00:35:11.520> and<00:35:11.600> a<00:35:11.640> size<00:35:12.080> or<00:35:12.400> you\nyou need a pointer and a size or you\nyou need a pointer and a size or you know,<00:35:12.560> two<00:35:12.760> pointers<00:35:13.160> that<00:35:13.280> form<00:35:13.520> a<00:35:13.840> that<00:35:13.960> form\nknow, two pointers that form a that form\nknow, two pointers that form a that form a<00:35:14.200> range<00:35:14.520> in<00:35:14.640> memory<00:35:14.920> or<00:35:15.000> whatever.\na range in memory or whatever.\na range in memory or whatever. Um<00:35:16.800> and<00:35:16.880> this<00:35:17.040> is<00:35:17.120> just<00:35:17.440> how<00:35:17.680> you<00:35:17.840> encode<00:35:18.200> a\nUm and this is just how you encode a\nUm and this is just how you encode a dynamic<00:35:18.720> array<00:35:19.160> inside<00:35:19.600> of<00:35:19.760> like<00:35:19.960> the<00:35:20.080> regular\ndynamic array inside of like the regular\ndynamic array inside of like the regular kind<00:35:21.160> of<00:35:21.600> uh<00:35:21.720> bare-bones<00:35:22.520> C<00:35:23.120> type<00:35:23.320> system.\nkind of uh bare-bones C type system.\nkind of uh bare-bones C type system. And<00:35:24.640> then<00:35:24.760> generally<00:35:25.160> if<00:35:25.280> you<00:35:25.560> visualize<00:35:26.000> this\nAnd then generally if you visualize this\nAnd then generally if you visualize this in<00:35:26.280> a<00:35:26.320> debugger,<00:35:27.120> what<00:35:27.280> you'll<00:35:27.400> see<00:35:28.280> is<00:35:28.960> um\nin a debugger, what you'll see is um\nin a debugger, what you'll see is um I'll<00:35:30.160> have<00:35:30.280> to<00:35:30.360> use<00:35:30.520> this<00:35:30.720> raw<00:35:30.960> thing,<00:35:31.720> this\nI'll have to use this raw thing, this\nI'll have to use this raw thing, this raw<00:35:32.520> view,<00:35:32.800> which<00:35:32.960> basically<00:35:33.200> turns<00:35:33.480> off<00:35:33.680> all\nraw view, which basically turns off all\nraw view, which basically turns off all the<00:35:33.880> special<00:35:34.160> views,<00:35:34.680> which<00:35:34.840> I'll<00:35:35.040> get<00:35:35.200> to<00:35:35.320> in\nthe special views, which I'll get to in\nthe special views, which I'll get to in a<00:35:35.440> second.<00:35:35.760> But<00:35:36.200> this<00:35:36.360> is<00:35:36.480> what<00:35:36.600> you<00:35:36.680> would\na second. But this is what you would\na second. But this is what you would normally<00:35:37.160> see<00:35:37.400> when<00:35:37.560> you<00:35:37.680> visualize<00:35:38.120> this\nnormally see when you visualize this\nnormally see when you visualize this thing<00:35:38.400> in<00:35:38.480> a<00:35:38.520> debugger.<00:35:38.920> It's<00:35:39.040> like,<00:35:39.200> \"Hey,\nthing in a debugger. It's like, \"Hey,\nthing in a debugger. It's like, \"Hey, it's<00:35:39.600> a<00:35:39.640> struct<00:35:40.040> with<00:35:40.160> two<00:35:40.320> members.<00:35:40.680> One's<00:35:40.880> a\nit's a struct with two members. One's a\nit's a struct with two members. One's a pointer<00:35:41.360> to<00:35:41.960> some<00:35:42.240> number<00:35:42.560> of<00:35:42.680> pairs<00:35:42.960> we<00:35:43.040> don't\npointer to some number of pairs we don't\npointer to some number of pairs we don't know,<00:35:43.480> but<00:35:43.840> we<00:35:43.960> can<00:35:44.080> only<00:35:44.240> assume<00:35:44.600> one<00:35:44.920> really\nknow, but we can only assume one really\nknow, but we can only assume one really in<00:35:45.880> general.\"<00:35:46.880> And<00:35:46.920> then<00:35:47.040> this<00:35:47.200> integer\nin general.\" And then this integer\nin general.\" And then this integer called<00:35:47.920> count<00:35:48.320> with<00:35:48.880> with<00:35:49.120> a<00:35:49.240> size<00:35:50.000> or<00:35:50.440> with<00:35:50.600> a\ncalled count with with a size or with a\ncalled count with with a size or with a value<00:35:50.920> of<00:35:51.040> six.\nvalue of six.\nvalue of six. Um<00:35:52.360> but<00:35:52.520> obviously<00:35:53.000> what<00:35:53.120> this<00:35:53.280> is<00:35:53.400> encoding\nUm but obviously what this is encoding\nUm but obviously what this is encoding um<00:35:55.000> and<00:35:55.280> what<00:35:55.480> the<00:35:55.640> name<00:35:55.880> should<00:35:56.040> imply<00:35:56.360> is\num and what the name should imply is\num and what the name should imply is that,<00:35:56.600> \"Hey,<00:35:56.840> this<00:35:57.040> is<00:35:57.240> six<00:35:57.680> of<00:35:57.840> these<00:35:58.040> pairs\nthat, \"Hey, this is six of these pairs\nthat, \"Hey, this is six of these pairs that<00:35:58.840> we're<00:35:58.920> pointing<00:35:59.320> to.\"\nthat we're pointing to.\"\nthat we're pointing to.\" And<00:36:01.520> so<00:36:01.640> what<00:36:01.760> we<00:36:01.840> can<00:36:01.960> actually<00:36:02.240> do<00:36:02.680> is<00:36:03.160> um\nAnd so what we can actually do is um\nAnd so what we can actually do is um uh<00:36:04.320> if<00:36:04.440> we<00:36:04.560> go\nlook<00:36:08.080> at<00:36:08.200> more<00:36:08.400> of<00:36:08.480> the<00:36:08.560> markup<00:36:08.920> in<00:36:09.000> this<00:36:09.440> in\nlook at more of the markup in this in\nlook at more of the markup in this in this<00:36:10.080> um<00:36:10.400> file,<00:36:10.760> we<00:36:10.840> can<00:36:10.960> see,<00:36:11.560> \"Hey,<00:36:11.680> here's\nthis um file, we can see, \"Hey, here's\nthis um file, we can see, \"Hey, here's my<00:36:12.040> structure.<00:36:13.080> Uh<00:36:13.200> it's<00:36:13.360> dynamic<00:36:13.760> array,\nmy structure. Uh it's dynamic array,\nmy structure. Uh it's dynamic array, pair<00:36:14.480> pointer,<00:36:15.280> and<00:36:15.560> int.\"\npair pointer, and int.\"\npair pointer, and int.\" And<00:36:18.000> right<00:36:18.200> here<00:36:18.440> I<00:36:18.480> just<00:36:18.680> say,<00:36:18.840> \"Hey,<00:36:19.600> I<00:36:19.720> want\nAnd right here I just say, \"Hey, I want\nAnd right here I just say, \"Hey, I want to<00:36:20.000> form<00:36:20.280> a<00:36:20.320> special<00:36:20.680> kind<00:36:20.840> of<00:36:20.920> view<00:36:21.240> that's\nto form a special kind of view that's\nto form a special kind of view that's associated<00:36:22.160> with<00:36:22.280> this<00:36:22.480> type\nassociated with this type\nassociated with this type uh<00:36:23.520> for<00:36:24.000> for<00:36:24.160> the<00:36:24.280> Render<00:36:24.480> Debugger.\"<00:36:24.720> So<00:36:24.840> it's\nuh for for the Render Debugger.\" So it's\nuh for for the Render Debugger.\" So it's a<00:36:24.960> Render<00:36:25.160> Debugger<00:36:25.400> type<00:36:25.640> view.<00:36:26.360> I<00:36:26.480> put<00:36:26.680> in\na Render Debugger type view. I put in\na Render Debugger type view. I put in the<00:36:26.840> name<00:36:27.040> of<00:36:27.120> the<00:36:27.200> type,<00:36:27.720> and<00:36:27.800> then<00:36:27.920> I<00:36:28.000> put<00:36:28.280> in\nthe name of the type, and then I put in\nthe name of the type, and then I put in the<00:36:29.240> expression<00:36:29.880> that<00:36:30.000> I'd<00:36:30.120> like<00:36:30.320> to\nthe expression that I'd like to\nthe expression that I'd like to visualize<00:36:31.520> instances<00:36:32.040> of<00:36:32.120> this<00:36:32.280> type<00:36:32.520> as.<00:36:33.320> So,\nvisualize instances of this type as. So,\nvisualize instances of this type as. So, in<00:36:33.480> this<00:36:33.640> case,<00:36:33.920> and<00:36:34.120> this<00:36:34.280> dollar<00:36:34.560> sign<00:36:35.080> is\nin this case, and this dollar sign is\nin this case, and this dollar sign is just<00:36:35.480> used<00:36:35.880> to<00:36:36.120> refer<00:36:36.520> to\njust used to refer to\njust used to refer to um<00:36:37.720> whatever's<00:36:38.080> being<00:36:38.280> evaluated.<00:36:39.280> So,<00:36:39.600> any\num whatever's being evaluated. So, any\num whatever's being evaluated. So, any whatever<00:36:40.880> expression<00:36:41.280> it<00:36:41.360> evaluates<00:36:41.800> to<00:36:41.920> this\nwhatever expression it evaluates to this\nwhatever expression it evaluates to this type,<00:36:42.520> that's<00:36:42.720> what<00:36:42.880> this<00:36:43.040> dollar<00:36:43.320> sign\ntype, that's what this dollar sign\ntype, that's what this dollar sign represents.<00:36:44.360> And<00:36:44.520> the<00:36:44.640> only<00:36:44.840> thing<00:36:44.960> I'm<00:36:45.080> going\nrepresents. And the only thing I'm going\nrepresents. And the only thing I'm going to<00:36:45.280> do<00:36:45.560> when<00:36:45.720> we're<00:36:45.840> evaluating<00:36:46.400> this<00:36:46.560> kind<00:36:46.760> of\nto do when we're evaluating this kind of\nto do when we're evaluating this kind of thing<00:36:47.400> is<00:36:47.480> I'm<00:36:47.560> just<00:36:47.680> going<00:36:47.800> to<00:36:47.880> wrap<00:36:48.120> it<00:36:48.200> in\nthing is I'm just going to wrap it in\nthing is I'm just going to wrap it in this<00:36:48.440> view<00:36:49.040> called<00:36:49.320> slice.\nthis view called slice.\nthis view called slice. And<00:36:51.400> so,<00:36:51.520> what<00:36:51.680> we<00:36:51.840> do\nAnd so, what we do\nAnd so, what we do uh<00:36:53.320> what<00:36:53.440> we<00:36:53.560> see<00:36:53.800> when<00:36:53.960> we<00:36:54.080> actually<00:36:54.640> like\nuh what we see when we actually like\nuh what we see when we actually like plug<00:36:55.120> that<00:36:55.320> in<00:36:55.520> and<00:36:55.680> evaluate<00:36:56.080> just<00:36:56.320> dynamic,\nplug that in and evaluate just dynamic,\nplug that in and evaluate just dynamic, we<00:36:57.000> see<00:36:57.200> that<00:36:57.360> the<00:36:57.480> evaluation<00:36:58.000> type<00:36:58.160> is\nwe see that the evaluation type is\nwe see that the evaluation type is actually<00:36:58.560> slice<00:36:59.480> the<00:36:59.600> slice<00:36:59.960> view<00:37:00.760> applied<00:37:01.200> to\nactually slice the slice view applied to\nactually slice the slice view applied to a<00:37:01.840> dynamic<00:37:02.280> array<00:37:02.440> type.\na dynamic array type.\na dynamic array type. And<00:37:03.960> that<00:37:04.160> will<00:37:04.320> actually<00:37:04.640> expand<00:37:05.280> with<00:37:05.480> the\nAnd that will actually expand with the\nAnd that will actually expand with the exact<00:37:05.960> number<00:37:06.200> of<00:37:06.320> things<00:37:06.560> that<00:37:06.680> I<00:37:06.720> actually\nexact number of things that I actually\nexact number of things that I actually expect.<00:37:07.440> So,<00:37:07.560> this<00:37:07.760> is<00:37:07.880> like<00:37:08.080> just<00:37:08.800> hit\nexpect. So, this is like just hit\nexpect. So, this is like just hit saying,<00:37:09.200> \"Hey,<00:37:09.360> here's<00:37:09.600> a<00:37:09.640> structure.<00:37:10.000> It's\nsaying, \"Hey, here's a structure. It's\nsaying, \"Hey, here's a structure. It's got<00:37:10.200> a<00:37:10.240> pointer<00:37:10.520> and<00:37:10.600> a<00:37:10.640> count.<00:37:11.600> You<00:37:11.760> know<00:37:11.880> what\ngot a pointer and a count. You know what\ngot a pointer and a count. You know what to<00:37:12.080> do<00:37:12.200> with<00:37:12.360> this<00:37:13.080> if<00:37:13.280> I<00:37:13.360> tell<00:37:13.600> you<00:37:13.680> that<00:37:13.840> it's\nto do with this if I tell you that it's\nto do with this if I tell you that it's a<00:37:14.000> slice.\"<00:37:14.560> So,<00:37:15.000> the<00:37:15.120> debugger<00:37:15.440> does<00:37:15.680> know<00:37:15.800> how\na slice.\" So, the debugger does know how\na slice.\" So, the debugger does know how to<00:37:16.000> do<00:37:16.120> it<00:37:16.520> do<00:37:16.680> with<00:37:16.800> it,<00:37:16.960> and<00:37:17.040> then<00:37:17.160> this<00:37:17.280> write\nto do it do with it, and then this write\nto do it do with it, and then this write a<00:37:17.480> view<00:37:17.600> type<00:37:17.920> view<00:37:18.080> is<00:37:18.160> just<00:37:18.360> saying,\na view type view is just saying,\na view type view is just saying, \"If<00:37:19.600> you<00:37:19.720> have<00:37:19.960> this<00:37:20.120> type,<00:37:20.600> just<00:37:20.840> do<00:37:20.960> that\n\"If you have this type, just do that\n\"If you have this type, just do that automatically<00:37:21.680> for<00:37:21.880> me.\"<00:37:22.000> So,<00:37:22.080> you<00:37:22.120> don't\nautomatically for me.\" So, you don't\nautomatically for me.\" So, you don't have<00:37:22.400> to<00:37:22.480> do<00:37:23.080> slice\nhave to do slice\nhave to do slice at<00:37:24.840> uh<00:37:24.920> all<00:37:25.000> dynamic<00:37:25.640> every<00:37:25.800> single<00:37:26.040> time<00:37:26.240> you\nat uh all dynamic every single time you\nat uh all dynamic every single time you want<00:37:26.440> to<00:37:26.480> evaluate<00:37:26.880> something.\nwant to evaluate something.\nwant to evaluate something. Um\nUm\nUm And<00:37:29.600> you<00:37:29.640> can<00:37:29.760> see<00:37:29.960> you<00:37:30.080> do<00:37:30.200> it<00:37:30.240> with<00:37:30.360> templates\nAnd you can see you do it with templates\nAnd you can see you do it with templates as<00:37:30.880> well.<00:37:31.080> Like<00:37:31.280> I<00:37:31.320> have<00:37:31.400> a<00:37:31.440> templated<00:37:31.880> dynamic\nas well. Like I have a templated dynamic\nas well. Like I have a templated dynamic array.<00:37:33.120> Um<00:37:33.880> and<00:37:34.240> here<00:37:34.520> I<00:37:34.560> actually<00:37:34.800> put<00:37:34.960> in<00:37:35.040> the\narray. Um and here I actually put in the\narray. Um and here I actually put in the count.<00:37:35.720> So,<00:37:35.880> if<00:37:36.000> we<00:37:36.120> look<00:37:36.360> at<00:37:36.680> uh<00:37:37.000> let<00:37:37.080> me<00:37:37.200> look\ncount. So, if we look at uh let me look\ncount. So, if we look at uh let me look at<00:37:37.560> where<00:37:37.720> this<00:37:37.880> is<00:37:38.000> used.\nat where this is used.\nat where this is used. Uh<00:37:39.880> templated<00:37:40.280> dynamic,<00:37:40.800> so<00:37:40.920> we'll<00:37:41.040> do\nUh templated dynamic, so we'll do\nUh templated dynamic, so we'll do templated\ntemplated\ntemplated dynamic<00:37:44.120> here.\ndynamic here.\ndynamic here. And<00:37:45.960> we<00:37:46.040> can<00:37:46.160> see<00:37:46.320> we<00:37:46.440> get<00:37:47.160> uh<00:37:47.400> the<00:37:47.520> count\nAnd we can see we get uh the count\nAnd we can see we get uh the count visualized<00:37:48.360> here<00:37:48.520> and<00:37:48.600> then<00:37:48.800> array<00:37:49.360> of<00:37:49.600> the\nvisualized here and then array of the\nvisualized here and then array of the base<00:37:49.920> pointer<00:37:50.320> with<00:37:50.520> the<00:37:50.600> count\nbase pointer with the count\nbase pointer with the count right<00:37:52.360> here.\nright here.\nright here. Um\nUm\nUm And<00:37:55.000> that<00:37:55.120> actually<00:37:55.360> applies<00:37:55.640> for\nAnd that actually applies for\nAnd that actually applies for everything.<00:37:56.120> So,<00:37:56.360> if<00:37:56.560> I<00:37:56.600> go<00:37:56.720> back<00:37:56.920> to<00:37:57.000> that\neverything. So, if I go back to that\neverything. So, if I go back to that fancy<00:37:57.520> visualizer,\nfancy visualizer,\nfancy visualizer, uh\nuh\nuh eval<00:38:00.320> test,<00:38:01.080> um\neval test, um\neval test, um if<00:38:02.280> I<00:38:02.320> go<00:38:02.440> down<00:38:02.640> to<00:38:02.720> this<00:38:02.880> bitmap<00:38:03.280> type,\nif I go down to this bitmap type,\nif I go down to this bitmap type, you'll<00:38:05.120> see<00:38:05.280> that<00:38:05.600> it's<00:38:05.800> just<00:38:06.240> uh<00:38:06.640> this<00:38:06.840> is<00:38:06.960> a\nyou'll see that it's just uh this is a\nyou'll see that it's just uh this is a structure,<00:38:08.040> this<00:38:08.200> bitmap,<00:38:08.640> which<00:38:08.840> has<00:38:08.960> a<00:38:09.040> base\nstructure, this bitmap, which has a base\nstructure, this bitmap, which has a base pointer<00:38:09.600> and<00:38:09.720> a<00:38:09.760> width<00:38:09.960> and<00:38:10.040> a<00:38:10.080> height.<00:38:10.800> And\npointer and a width and a height. And\npointer and a width and a height. And there's<00:38:11.120> just<00:38:11.280> a<00:38:11.360> rule<00:38:11.600> somewhere<00:38:12.360> that<00:38:12.600> says\nthere's just a rule somewhere that says\nthere's just a rule somewhere that says um\num\num \"Hey,<00:38:15.640> if<00:38:15.800> you<00:38:15.920> have<00:38:16.080> a<00:38:16.120> type<00:38:16.560> if<00:38:16.680> you<00:38:16.760> have<00:38:16.840> an\n\"Hey, if you have a type if you have an\n\"Hey, if you have a type if you have an instance<00:38:17.240> of<00:38:17.320> type<00:38:17.520> bitmap,<00:38:18.440> visualize<00:38:18.920> this\ninstance of type bitmap, visualize this\ninstance of type bitmap, visualize this with<00:38:19.800> the<00:38:19.880> bitmap<00:38:20.240> view<00:38:20.920> applied<00:38:21.720> uh<00:38:21.800> the<00:38:21.840> base\nwith the bitmap view applied uh the base\nwith the bitmap view applied uh the base pointer<00:38:22.800> to<00:38:22.920> the<00:38:23.040> pixels<00:38:23.400> being<00:38:23.600> the<00:38:23.680> base<00:38:24.240> the\npointer to the pixels being the base the\npointer to the pixels being the base the base<00:38:24.520> member<00:38:24.880> and<00:38:25.000> then<00:38:25.120> the<00:38:25.240> width<00:38:25.400> and\nbase member and then the width and\nbase member and then the width and height<00:38:25.720> being<00:38:25.880> the<00:38:25.960> dimensions,<00:38:26.440> right?\nheight being the dimensions, right?\nheight being the dimensions, right? That's<00:38:26.800> all<00:38:27.520> That's<00:38:27.720> the<00:38:27.800> only<00:38:28.000> thing<00:38:28.200> that's\nThat's all That's the only thing that's\nThat's all That's the only thing that's in<00:38:28.520> there<00:38:28.920> and<00:38:29.320> and<00:38:29.800> that<00:38:29.920> gets<00:38:30.080> baked<00:38:30.320> into\nin there and and that gets baked into\nin there and and that gets baked into the<00:38:30.560> executable,<00:38:31.040> so<00:38:31.160> the<00:38:31.240> debugger<00:38:31.560> plugs<00:38:31.840> it\nthe executable, so the debugger plugs it\nthe executable, so the debugger plugs it into<00:38:32.160> its<00:38:32.600> evaluation<00:38:33.120> system.\ninto its evaluation system.\ninto its evaluation system. And<00:38:34.560> then<00:38:34.720> anytime<00:38:35.200> I<00:38:35.280> evaluate,<00:38:36.400> uh,<00:38:36.480> for\nAnd then anytime I evaluate, uh, for\nAnd then anytime I evaluate, uh, for example,<00:38:37.000> a<00:38:37.040> variable<00:38:37.400> called<00:38:37.640> foo<00:38:38.360> of<00:38:38.560> type\nexample, a variable called foo of type\nexample, a variable called foo of type of<00:38:38.880> it<00:38:39.000> map,<00:38:39.600> then<00:38:39.800> we<00:38:39.920> see<00:38:40.720> it's<00:38:40.920> just<00:38:41.320> the\nof it map, then we see it's just the\nof it map, then we see it's just the it's<00:38:42.080> just<00:38:42.240> the<00:38:42.280> bitmap<00:38:42.880> thing.<00:38:43.120> And<00:38:43.200> if<00:38:43.320> I\nit's just the bitmap thing. And if I\nit's just the bitmap thing. And if I want<00:38:43.600> to<00:38:43.680> get<00:38:43.800> back<00:38:43.960> to<00:38:44.040> the<00:38:44.160> original<00:38:44.600> view,\nwant to get back to the original view,\nwant to get back to the original view, then<00:38:46.000> I<00:38:46.080> just<00:38:46.240> do<00:38:46.400> raw.<00:38:46.960> It's<00:38:47.200> That's<00:38:47.440> what<00:38:47.520> the\nthen I just do raw. It's That's what the\nthen I just do raw. It's That's what the raw<00:38:47.840> thing<00:38:48.000> is<00:38:48.120> for,<00:38:48.360> right?<00:38:48.520> That's<00:38:49.080> That's\nraw thing is for, right? That's That's\nraw thing is for, right? That's That's me<00:38:49.400> saying,<00:38:49.640> \"Hey,<00:38:49.920> I<00:38:50.080> just<00:38:50.520> I<00:38:50.640> just<00:38:50.960> want<00:38:51.120> to\nme saying, \"Hey, I just I just want to\nme saying, \"Hey, I just I just want to look<00:38:51.640> at<00:38:51.720> this<00:38:51.880> how<00:38:52.000> the<00:38:52.080> debugger<00:38:52.400> would\nlook at this how the debugger would\nlook at this how the debugger would normally<00:38:52.920> look<00:38:53.160> at<00:38:53.240> it<00:38:53.320> without<00:38:53.560> any<00:38:53.720> of<00:38:53.800> the\nnormally look at it without any of the\nnormally look at it without any of the type<00:38:54.080> view<00:38:54.200> stuff.<00:38:54.440> Just<00:38:54.640> turn<00:38:54.800> it<00:38:54.920> all<00:38:55.080> off,\ntype view stuff. Just turn it all off,\ntype view stuff. Just turn it all off, get<00:38:55.720> a<00:38:55.760> base<00:38:55.960> pointer<00:38:56.320> with<00:38:56.520> and<00:38:56.640> height.\"\nget a base pointer with and height.\"\nget a base pointer with and height.\" Um,\nUm,\nUm, but<00:38:58.760> by<00:38:58.880> default,<00:38:59.280> obviously,<00:38:59.640> it's<00:38:59.800> more<00:39:00.200> if\nbut by default, obviously, it's more if\nbut by default, obviously, it's more if you<00:39:00.360> have<00:39:00.440> something<00:39:00.640> called<00:39:00.800> bitmap,<00:39:01.240> it\nyou have something called bitmap, it\nyou have something called bitmap, it might<00:39:01.400> be<00:39:01.480> convenient<00:39:01.880> to<00:39:01.960> look<00:39:02.120> at<00:39:02.200> it<00:39:02.320> as\nmight be convenient to look at it as\nmight be convenient to look at it as bitmap<00:39:02.840> by<00:39:02.920> default.<00:39:03.560> So,\nhopefully,<00:39:07.360> that<00:39:08.160> is<00:39:08.280> a<00:39:08.320> pretty<00:39:08.520> good\nhopefully, that is a pretty good\nhopefully, that is a pretty good overview.<00:39:09.400> Um,<00:39:10.160> there's<00:39:10.320> lots<00:39:10.480> of<00:39:10.560> other\noverview. Um, there's lots of other\noverview. Um, there's lots of other things<00:39:11.080> like<00:39:11.840> more<00:39:12.040> traditional<00:39:12.480> debugger\nthings like more traditional debugger\nthings like more traditional debugger things<00:39:13.080> like<00:39:13.240> I<00:39:13.280> can<00:39:13.600> I<00:39:13.680> can<00:39:13.800> debug<00:39:14.040> multiple\nthings like I can I can debug multiple\nthings like I can I can debug multiple processes<00:39:14.880> at<00:39:15.000> once.<00:39:16.000> Um,<00:39:16.520> there's\nprocesses at once. Um, there's\nprocesses at once. Um, there's conditional<00:39:17.120> breakpoints,<00:39:17.760> there's<00:39:18.120> address\nconditional breakpoints, there's address\nconditional breakpoints, there's address breakpoints,<00:39:19.040> there's,<00:39:19.560> uh,<00:39:19.680> data\nbreakpoints, there's, uh, data\nbreakpoints, there's, uh, data breakpoints<00:39:20.480> as<00:39:20.600> well.<00:39:21.480> Um,<00:39:21.920> so<00:39:22.000> I<00:39:22.080> can<00:39:22.200> cover\nbreakpoints as well. Um, so I can cover\nbreakpoints as well. Um, so I can cover any<00:39:22.640> of<00:39:22.720> those,<00:39:22.960> but<00:39:23.080> those<00:39:23.240> are<00:39:23.320> all<00:39:23.400> kind<00:39:23.560> of\nany of those, but those are all kind of\nany of those, but those are all kind of common<00:39:23.960> debugger<00:39:24.280> functionality.<00:39:25.480> Um,\ncommon debugger functionality. Um,\ncommon debugger functionality. Um, but,<00:39:26.920> uh,<00:39:27.080> hopefully,<00:39:27.360> that's<00:39:27.480> a<00:39:27.520> good\nbut, uh, hopefully, that's a good\nbut, uh, hopefully, that's a good overview.\noverview.\noverview. Um,\nUm,\nUm, >> Nice.\n>> Nice.\n>> Nice. >> Yeah.\n>> Yeah.\n>> Yeah. >> Uh,<00:39:32.120> there<00:39:32.520> there<00:39:32.680> were<00:39:32.760> a<00:39:32.840> couple<00:39:33.280> of<00:39:33.600> wows<00:39:34.200> in\n>> Uh, there there were a couple of wows in\n>> Uh, there there were a couple of wows in the<00:39:34.640> chat<00:39:35.040> in<00:39:35.160> the<00:39:35.280> meantime<00:39:36.160> when<00:39:36.360> you<00:39:36.440> were\nthe chat in the meantime when you were\nthe chat in the meantime when you were doing<00:39:36.920> the<00:39:37.280> everything<00:39:37.680> is<00:39:37.800> a<00:39:37.880> watch<00:39:38.120> window\ndoing the everything is a watch window\ndoing the everything is a watch window uh,<00:39:39.560> reveals.\nuh, reveals.\nuh, reveals. And<00:39:40.840> there<00:39:40.960> were<00:39:41.040> also<00:39:41.240> a<00:39:41.280> couple<00:39:41.600> of\nAnd there were also a couple of\nAnd there were also a couple of questions<00:39:42.480> like<00:39:42.800> how<00:39:43.320> rad<00:39:43.600> debugger<00:39:43.960> works\nquestions like how rad debugger works\nquestions like how rad debugger works with,<00:39:44.840> uh,<00:39:45.160> sources<00:39:45.640> that<00:39:45.760> only<00:39:46.000> have,<00:39:46.200> for\nwith, uh, sources that only have, for\nwith, uh, sources that only have, for example,<00:39:47.040> debug<00:39:47.360> information<00:39:48.000> or<00:39:48.200> don't<00:39:49.200> and\nexample, debug information or don't and\nexample, debug information or don't and how<00:39:49.560> does<00:39:49.800> it<00:39:49.920> interplay<00:39:50.440> with<00:39:50.640> like,<00:39:51.240> um,\nhow does it interplay with like, um,\nhow does it interplay with like, um, other<00:39:51.840> libraries<00:39:52.360> and<00:39:52.520> other<00:39:52.720> source<00:39:53.000> code?\n>> Uh,<00:39:56.160> I<00:39:56.240> guess<00:39:56.440> I'm<00:39:56.560> not<00:39:56.880> 100%<00:39:57.400> sure<00:39:57.520> about<00:39:57.680> the\n>> Uh, I guess I'm not 100% sure about the\n>> Uh, I guess I'm not 100% sure about the question.<00:39:58.280> Like<00:39:58.440> if<00:39:58.560> you<00:39:58.640> don't<00:39:58.880> have<00:39:59.040> debug\nquestion. Like if you don't have debug\nquestion. Like if you don't have debug info,<00:40:00.040> then<00:40:00.560> what<00:40:00.880> The<00:40:01.040> only<00:40:01.200> thing<00:40:01.360> you<00:40:01.440> can\ninfo, then what The only thing you can\ninfo, then what The only thing you can really<00:40:01.760> do,\nreally do,\nreally do, um,<00:40:03.280> obviously,<00:40:03.600> there's<00:40:04.000> there<00:40:04.200> there's<00:40:04.520> a\num, obviously, there's there there's a\num, obviously, there's there there's a whole<00:40:04.800> family<00:40:05.280> of<00:40:05.440> reverse<00:40:05.760> engineering\nwhole family of reverse engineering\nwhole family of reverse engineering features<00:40:06.640> that<00:40:06.760> people<00:40:07.160> have<00:40:07.800> can<00:40:08.080> and<00:40:08.200> do<00:40:08.440> put\nfeatures that people have can and do put\nfeatures that people have can and do put into<00:40:08.800> their<00:40:08.920> debuggers.<00:40:09.960> Um,<00:40:10.320> the<00:40:10.400> rad\ninto their debuggers. Um, the rad\ninto their debuggers. Um, the rad debugger<00:40:10.800> is<00:40:10.920> more<00:40:11.480> more<00:40:11.760> focused<00:40:12.160> on<00:40:12.280> like\ndebugger is more more focused on like\ndebugger is more more focused on like the<00:40:12.600> cases<00:40:12.920> where<00:40:13.040> you<00:40:13.120> have<00:40:13.360> debug<00:40:13.640> info<00:40:13.960> cuz\nthe cases where you have debug info cuz\nthe cases where you have debug info cuz this<00:40:14.320> is,<00:40:14.520> you<00:40:14.600> know,<00:40:14.760> obviously,<00:40:15.040> it's<00:40:15.200> for\nthis is, you know, obviously, it's for\nthis is, you know, obviously, it's for game<00:40:15.600> developers.<00:40:16.320> Um,<00:40:16.640> as<00:40:16.800> a<00:40:16.960> first<00:40:18.040> as<00:40:18.200> kind\ngame developers. Um, as a first as kind\ngame developers. Um, as a first as kind of<00:40:18.440> like<00:40:18.640> the<00:40:19.160> intended<00:40:19.800> audience<00:40:20.240> or<00:40:20.440> just\nof like the intended audience or just\nof like the intended audience or just system<00:40:20.960> developers<00:40:21.440> working<00:40:21.720> on<00:40:21.840> system\nsystem developers working on system\nsystem developers working on system software.<00:40:23.200> And<00:40:23.400> so,<00:40:23.640> in<00:40:23.800> that<00:40:24.120> in<00:40:24.240> that\nsoftware. And so, in that in that\nsoftware. And so, in that in that context,<00:40:24.760> you<00:40:24.880> do<00:40:25.080> have<00:40:25.200> debug<00:40:25.480> info.<00:40:25.760> So,<00:40:25.920> we\ncontext, you do have debug info. So, we\ncontext, you do have debug info. So, we haven't<00:40:26.400> spent<00:40:26.600> a<00:40:26.640> lot<00:40:26.800> of<00:40:26.880> time<00:40:27.080> doing\nhaven't spent a lot of time doing\nhaven't spent a lot of time doing reverse<00:40:27.680> engineering<00:40:28.120> type<00:40:28.320> stuff<00:40:28.640> where<00:40:28.760> you\nreverse engineering type stuff where you\nreverse engineering type stuff where you cannot<00:40:29.320> be<00:40:29.520> guaranteed<00:40:30.000> to<00:40:30.080> have<00:40:30.280> debug<00:40:30.560> info.\ncannot be guaranteed to have debug info.\ncannot be guaranteed to have debug info. Um<00:40:32.200> you<00:40:32.320> can<00:40:32.440> still<00:40:32.600> debug,<00:40:33.240> but<00:40:33.400> it's<00:40:33.520> just\nUm you can still debug, but it's just\nUm you can still debug, but it's just going<00:40:33.800> to<00:40:33.880> be<00:40:34.040> hey,<00:40:34.280> you<00:40:34.360> have<00:40:34.520> disassembly,\ngoing to be hey, you have disassembly,\ngoing to be hey, you have disassembly, you<00:40:35.480> can<00:40:35.600> look<00:40:35.760> at<00:40:35.840> memory,<00:40:36.600> but<00:40:36.840> there's<00:40:37.040> no\nyou can look at memory, but there's no\nyou can look at memory, but there's no information<00:40:37.720> about<00:40:37.960> like<00:40:38.160> what<00:40:38.320> variables\ninformation about like what variables\ninformation about like what variables are<00:40:38.880> there<00:40:39.160> or<00:40:39.240> type<00:40:39.560> info<00:40:39.960> or<00:40:40.040> like<00:40:40.240> any<00:40:40.400> of\nare there or type info or like any of\nare there or type info or like any of that.<00:40:40.840> All<00:40:41.000> of<00:40:41.040> that's<00:40:41.240> not<00:40:41.440> in<00:40:41.560> there.<00:40:42.120> Um\nthat. All of that's not in there. Um\nthat. All of that's not in there. Um there's<00:40:42.360> no<00:40:42.480> line<00:40:42.760> info.<00:40:43.880> Um\nthere's no line info. Um\nthere's no line info. Um anything<00:40:45.440> like<00:40:45.600> that.<00:40:45.800> So,<00:40:46.080> if<00:40:46.200> you<00:40:46.280> don't\nanything like that. So, if you don't\nanything like that. So, if you don't have<00:40:46.560> debug<00:40:46.840> info,<00:40:47.160> it's<00:40:47.320> going<00:40:47.440> to<00:40:47.480> be<00:40:47.560> pretty\nhave debug info, it's going to be pretty\nhave debug info, it's going to be pretty bare-bones.<00:40:48.800> Uh<00:40:49.120> we<00:40:49.240> don't<00:40:49.400> have<00:40:49.520> a<00:40:49.560> whole<00:40:49.760> lot\nbare-bones. Uh we don't have a whole lot\nbare-bones. Uh we don't have a whole lot of<00:40:50.400> um\nof um\nof um whole<00:40:51.600> lot<00:40:51.800> of<00:40:51.960> like<00:40:52.320> reverse<00:40:52.600> engineering\nwhole lot of like reverse engineering\nwhole lot of like reverse engineering type<00:40:53.240> stuff.\ntype stuff.\ntype stuff. Um\nUm\nUm but<00:40:55.560> uh\nbut uh\nbut uh Uh<00:40:56.960> what<00:40:57.120> was<00:40:57.200> the<00:40:57.280> other<00:40:57.400> part<00:40:57.520> of<00:40:57.600> the\nUh what was the other part of the\nUh what was the other part of the question?<00:40:58.160> I<00:40:58.560> think<00:40:58.800> that<00:40:58.920> might<00:40:59.160> have\nquestion? I think that might have\nquestion? I think that might have covered<00:40:59.560> it,<00:40:59.640> but<00:40:59.840> if<00:41:00.000> not,<00:41:00.600> uh<00:41:00.880> let<00:41:01.000> me<00:41:01.080> know.\ncovered it, but if not, uh let me know.\ncovered it, but if not, uh let me know. >> I<00:41:01.680> think<00:41:01.960> that's<00:41:02.200> it.<00:41:02.600> The<00:41:03.240> that<00:41:03.440> was<00:41:03.600> the<00:41:04.040> like\n>> I think that's it. The that was the like\n>> I think that's it. The that was the like how<00:41:04.520> how<00:41:04.680> to<00:41:04.840> interface<00:41:05.320> with<00:41:05.520> other<00:41:05.760> things.\nhow how to interface with other things.\nhow how to interface with other things. I<00:41:06.520> also<00:41:06.880> put<00:41:07.080> it\nI also put it\nI also put it a<00:41:08.240> I<00:41:08.320> put<00:41:08.640> a<00:41:08.760> link<00:41:09.160> in<00:41:09.280> the<00:41:09.400> chat<00:41:10.160> regarding<00:41:10.600> the\na I put a link in the chat regarding the\na I put a link in the chat regarding the Q&A.<00:41:11.560> If<00:41:11.800> there's<00:41:12.120> something<00:41:12.440> that<00:41:12.640> we<00:41:12.760> missed\nQ&A. If there's something that we missed\nQ&A. If there's something that we missed uh<00:41:14.560> and<00:41:14.680> I<00:41:14.720> missed<00:41:15.000> through<00:41:15.120> during<00:41:15.360> the<00:41:15.480> chat,\nuh and I missed through during the chat,\nuh and I missed through during the chat, people<00:41:16.280> can<00:41:16.760> put<00:41:16.960> it<00:41:17.080> there.\npeople can put it there.\npeople can put it there. And\nAnd\nAnd >> Cool.\n>> Cool.\n>> Cool. >> Oh,<00:41:20.360> I<00:41:20.440> actually<00:41:20.760> missed<00:41:20.960> like<00:41:21.320> 50<00:41:22.240> messages\n>> Oh, I actually missed like 50 messages\n>> Oh, I actually missed like 50 messages now<00:41:22.880> because<00:41:23.240> my<00:41:23.840> my<00:41:24.000> YouTube<00:41:24.520> my<00:41:24.640> YouTube\nnow because my my YouTube my YouTube\nnow because my my YouTube my YouTube chat<00:41:25.200> was<00:41:25.360> frozen.<00:41:26.160> So,\nchat was frozen. So,\nchat was frozen. So, you<00:41:27.480> can<00:41:27.800> you<00:41:27.880> can<00:41:28.080> put<00:41:28.320> those<00:41:28.600> in<00:41:29.120> and\nyou can you can put those in and\nyou can you can put those in and uh<00:41:30.280> we<00:41:30.440> will<00:41:30.560> come<00:41:30.800> back<00:41:31.200> maybe<00:41:31.440> in<00:41:31.560> the<00:41:31.680> end.\nuh we will come back maybe in the end.\nuh we will come back maybe in the end. >> Um\n>> Um\n>> Um >> Cool.\n>> Cool.\n>> Cool. >> [snorts]\n>> [snorts]\n>> [snorts] >> Nice.\n>> Nice.\n>> Nice. Now,\nNow,\nNow, >> Yeah.\n>> Yeah.\n>> Yeah. >> is<00:41:37.080> this\n>> is this\n>> is this >> Oh,<00:41:37.520> I<00:41:37.560> guess<00:41:37.760> I<00:41:37.840> should\n>> Oh, I guess I should\n>> Oh, I guess I should >> Yeah.\n>> Yeah.\n>> Yeah. >> Well,<00:41:39.560> yes.<00:41:39.960> Okay,<00:41:40.200> so<00:41:40.400> one<00:41:40.640> more<00:41:40.840> thing<00:41:41.120> I\n>> Well, yes. Okay, so one more thing I\n>> Well, yes. Okay, so one more thing I should<00:41:41.400> probably<00:41:41.760> do<00:41:42.480> is<00:41:42.680> show<00:41:43.400> one<00:41:43.760> Maybe\nshould probably do is show one Maybe\nshould probably do is show one Maybe this<00:41:44.160> is<00:41:44.240> related<00:41:44.560> to<00:41:44.640> that<00:41:44.800> question,<00:41:45.160> but<00:41:45.480> um\nthis is related to that question, but um\nthis is related to that question, but um cross-language<00:41:46.480> support.<00:41:47.560> Um<00:41:48.360> so,<00:41:48.960> uh\ncross-language support. Um so, uh\ncross-language support. Um so, uh like<00:41:49.720> for<00:41:49.880> example,<00:41:50.240> if<00:41:50.320> I<00:41:50.400> wanted<00:41:50.600> to<00:41:50.680> debug\nlike for example, if I wanted to debug\nlike for example, if I wanted to debug like<00:41:51.440> JAI,<00:41:52.240> for<00:41:52.360> example,<00:41:53.400> um<00:41:54.280> this<00:41:54.440> uses<00:41:54.760> the\nlike JAI, for example, um this uses the\nlike JAI, for example, um this uses the same<00:41:55.240> type<00:41:55.520> of<00:41:55.600> debug<00:41:55.880> info<00:41:56.200> that<00:41:57.040> uh<00:41:57.440> like<00:41:57.720> C\nsame type of debug info that uh like C\nsame type of debug info that uh like C and<00:41:58.080> C++<00:41:58.520> do.<00:41:59.120> So,<00:41:59.440> the<00:41:59.880> the<00:41:59.960> JAI<00:42:00.280> compiler\nand C++ do. So, the the JAI compiler\nand C++ do. So, the the JAI compiler produces<00:42:02.520> uh<00:42:02.720> code<00:42:02.960> view<00:42:03.080> data,<00:42:03.440> which<00:42:03.920> um<00:42:04.280> I\nproduces uh code view data, which um I\nproduces uh code view data, which um I think<00:42:04.520> it<00:42:04.640> uses<00:42:05.160> the<00:42:05.280> MSVC<00:42:05.720> linker.<00:42:06.520> And<00:42:06.640> so,\nthink it uses the MSVC linker. And so,\nthink it uses the MSVC linker. And so, the<00:42:06.840> linker<00:42:07.160> will<00:42:07.400> stitch<00:42:07.680> those<00:42:07.880> together\nthe linker will stitch those together\nthe linker will stitch those together and<00:42:08.240> form<00:42:08.440> a<00:42:08.480> PDB,<00:42:09.000> which<00:42:09.200> the<00:42:09.280> debugger<00:42:09.600> knows\nand form a PDB, which the debugger knows\nand form a PDB, which the debugger knows how<00:42:09.840> to<00:42:09.920> work<00:42:10.120> with.<00:42:10.320> So,<00:42:11.080> if<00:42:11.200> I<00:42:11.240> have<00:42:11.360> a<00:42:11.400> JAI\nhow to work with. So, if I have a JAI\nhow to work with. So, if I have a JAI executable,<00:42:12.400> like<00:42:12.560> this<00:42:12.680> is<00:42:12.760> the<00:42:12.880> JAI\nexecutable, like this is the JAI\nexecutable, like this is the JAI Invaders,<00:42:14.200> um\nInvaders, um\nInvaders, um this<00:42:16.200> uh<00:42:16.320> this<00:42:16.480> also<00:42:16.680> just<00:42:16.920> works.\nthis uh this also just works.\nthis uh this also just works. Um<00:42:18.280> so,<00:42:18.640> here's<00:42:19.000> just<00:42:19.200> the<00:42:19.280> JAI<00:42:19.680> code,<00:42:20.080> and\nUm so, here's just the JAI code, and\nUm so, here's just the JAI code, and here's<00:42:20.840> me<00:42:21.040> stepping<00:42:21.360> through<00:42:21.600> it,<00:42:21.880> you<00:42:21.920> know,\nhere's me stepping through it, you know,\nhere's me stepping through it, you know, normal<00:42:22.560> stuff.\nnormal stuff.\nnormal stuff. And<00:42:23.840> those<00:42:24.000> type<00:42:24.280> views<00:42:24.560> come<00:42:24.720> in<00:42:24.840> handy<00:42:25.200> with\nAnd those type views come in handy with\nAnd those type views come in handy with uh<00:42:25.920> with<00:42:26.360> languages<00:42:26.800> like<00:42:27.000> JAI<00:42:27.640> because<00:42:28.240> um<00:42:28.840> if\nuh with languages like JAI because um if\nuh with languages like JAI because um if I<00:42:29.080> were<00:42:29.200> to<00:42:29.280> evaluate<00:42:29.760> strings<00:42:30.200> like<00:42:30.520> uh<00:42:30.600> we\nI were to evaluate strings like uh we\nI were to evaluate strings like uh we have<00:42:30.800> this<00:42:30.960> base<00:42:31.480> base<00:42:31.760> path<00:42:32.640> thing,<00:42:33.000> you<00:42:33.080> can\nhave this base base path thing, you can\nhave this base base path thing, you can see<00:42:33.360> it's<00:42:33.520> like<00:42:34.280> the<00:42:34.360> way<00:42:34.480> these<00:42:34.720> languages\nsee it's like the way these languages\nsee it's like the way these languages generate<00:42:35.760> these<00:42:36.560> uh<00:42:36.680> like\ngenerate these uh like\ngenerate these uh like string<00:42:37.720> variables,<00:42:38.040> like<00:42:38.160> generally<00:42:38.480> these\nstring variables, like generally these\nstring variables, like generally these languages<00:42:38.960> will<00:42:39.080> first-class<00:42:39.600> strings,<00:42:39.960> but\nlanguages will first-class strings, but\nlanguages will first-class strings, but because<00:42:40.880> they're<00:42:41.040> not<00:42:41.480> um<00:42:41.960> living<00:42:42.600> under<00:42:43.000> a\nbecause they're not um living under a\nbecause they're not um living under a rock,<00:42:43.360> they<00:42:43.480> know<00:42:43.640> to<00:42:43.760> make<00:42:43.960> them\nrock, they know to make them\nrock, they know to make them length-based<00:42:45.280> strings,<00:42:45.720> right?<00:42:45.920> So,<00:42:46.480> uh<00:42:46.600> JAI\nlength-based strings, right? So, uh JAI\nlength-based strings, right? So, uh JAI does<00:42:47.160> this.<00:42:47.360> It's<00:42:47.480> like<00:42:47.640> when<00:42:47.800> you<00:42:47.920> use<00:42:48.120> string\ndoes this. It's like when you use string\ndoes this. It's like when you use string literals,<00:42:48.760> it<00:42:48.840> just<00:42:49.040> returns<00:42:49.400> you<00:42:49.560> a<00:42:49.600> type<00:42:49.960> of\nliterals, it just returns you a type of\nliterals, it just returns you a type of this<00:42:50.600> string<00:42:50.920> structure.<00:42:51.880> And<00:42:51.960> that<00:42:52.080> has<00:42:52.200> a\nthis string structure. And that has a\nthis string structure. And that has a count<00:42:52.920> and<00:42:53.040> a<00:42:53.080> data,<00:42:53.720> which<00:42:53.920> means<00:42:54.480> we<00:42:54.600> can<00:42:54.720> do\ncount and a data, which means we can do\ncount and a data, which means we can do um\num\num uh<00:42:56.600> we<00:42:56.720> can<00:42:56.840> basically<00:42:57.240> do,<00:42:57.560> \"Hey,<00:42:57.840> array\nuh we can basically do, \"Hey, array\nuh we can basically do, \"Hey, array basepath.data.\"\nbasepath.data.\"\nbasepath.data.\" Um\nUm\nUm and<00:43:01.560> then<00:43:01.720> basepath.count\nand then basepath.count\nand then basepath.count if<00:43:03.400> we<00:43:03.520> want<00:43:03.720> to,<00:43:04.440> and<00:43:04.560> that'll<00:43:04.760> just<00:43:04.960> show<00:43:05.200> us\nif we want to, and that'll just show us\nif we want to, and that'll just show us just<00:43:05.640> the<00:43:05.720> string<00:43:05.960> literal<00:43:06.880> when<00:43:07.080> we<00:43:07.160> evaluate\njust the string literal when we evaluate\njust the string literal when we evaluate it<00:43:07.840> in<00:43:07.960> the<00:43:08.040> watch<00:43:08.240> window.\nit in the watch window.\nit in the watch window. And<00:43:09.680> then,<00:43:10.040> so<00:43:10.760> I<00:43:10.880> showed<00:43:11.200> how<00:43:11.320> to<00:43:11.440> embed<00:43:11.960> type\nAnd then, so I showed how to embed type\nAnd then, so I showed how to embed type views<00:43:12.480> into<00:43:12.760> the<00:43:12.960> executables<00:43:13.480> themselves,\nviews into the executables themselves,\nviews into the executables themselves, but<00:43:14.160> you<00:43:14.200> can<00:43:14.320> also<00:43:14.480> do<00:43:14.600> this<00:43:14.720> dynamically<00:43:15.240> in\nbut you can also do this dynamically in\nbut you can also do this dynamically in the<00:43:15.440> debugger<00:43:15.800> UI.<00:43:16.440> So,<00:43:16.560> if<00:43:16.680> I<00:43:16.760> did<00:43:17.200> uh<00:43:17.280> I<00:43:17.360> can\nthe debugger UI. So, if I did uh I can\nthe debugger UI. So, if I did uh I can open<00:43:17.640> up<00:43:17.720> the<00:43:17.800> type<00:43:18.040> views<00:43:18.280> tab,\nopen up the type views tab,\nopen up the type views tab, which<00:43:19.680> is<00:43:19.760> also<00:43:20.000> a<00:43:20.040> watch<00:43:20.240> window,<00:43:20.920> and<00:43:21.040> we<00:43:21.120> can\nwhich is also a watch window, and we can\nwhich is also a watch window, and we can say,<00:43:21.560> \"Hey,<00:43:21.800> like<00:43:22.000> this<00:43:22.240> string<00:43:22.920> type,<00:43:23.280> I<00:43:23.360> just\nsay, \"Hey, like this string type, I just\nsay, \"Hey, like this string type, I just always<00:43:24.000> want<00:43:24.120> to<00:43:24.200> do<00:43:24.440> array,<00:43:25.080> and<00:43:25.200> then<00:43:25.360> what\nalways want to do array, and then what\nalways want to do array, and then what is<00:43:25.680> the<00:43:25.920> what<00:43:26.040> is<00:43:26.120> the<00:43:26.200> member<00:43:26.480> called<00:43:26.760> here?\"\nis the what is the member called here?\"\nis the what is the member called here?\" It's<00:43:27.800> um\nIt's um\nIt's um >> Data<00:43:29.200> and<00:43:29.320> count.\n>> Data and count.\n>> Data and count. >> Data<00:43:30.640> and<00:43:30.760> count,<00:43:31.040> so<00:43:31.120> I<00:43:31.160> can<00:43:31.280> do,<00:43:31.440> \"Hey,<00:43:31.760> array\n>> Data and count, so I can do, \"Hey, array\n>> Data and count, so I can do, \"Hey, array data<00:43:32.760> count.\"\ndata count.\"\ndata count.\" And<00:43:35.280> so,<00:43:35.520> now<00:43:35.920> if<00:43:36.080> I<00:43:36.160> do,<00:43:36.480> \"Hey,<00:43:36.640> basepath,\nAnd so, now if I do, \"Hey, basepath,\nAnd so, now if I do, \"Hey, basepath, what<00:43:37.520> is<00:43:37.640> that?\"<00:43:38.080> It's<00:43:38.200> just<00:43:38.360> going<00:43:38.480> to<00:43:38.560> show\nwhat is that?\" It's just going to show\nwhat is that?\" It's just going to show me<00:43:38.960> the<00:43:39.080> string.<00:43:39.880> Um\nme the string. Um\nme the string. Um uh\nuh\nuh Same<00:43:43.000> thing<00:43:43.120> with<00:43:43.200> like<00:43:43.360> slices,<00:43:43.880> for\nSame thing with like slices, for\nSame thing with like slices, for example,<00:43:44.400> like<00:43:44.560> if<00:43:44.680> I<00:43:44.720> wanted<00:43:44.960> to<00:43:45.040> do,<00:43:45.200> \"Hey,\nexample, like if I wanted to do, \"Hey,\nexample, like if I wanted to do, \"Hey, like<00:43:45.680> let's<00:43:45.920> do<00:43:46.200> every<00:43:46.440> time<00:43:46.720> we<00:43:46.840> have<00:43:47.920> a<00:43:48.960> uh<00:43:49.320> a\nlike let's do every time we have a uh a\nlike let's do every time we have a uh a slice<00:43:49.880> type,\num<00:43:54.080> now<00:43:54.200> I<00:43:54.240> don't<00:43:54.440> actually<00:43:54.680> know<00:43:54.840> what<00:43:54.920> the\num now I don't actually know what the\num now I don't actually know what the type<00:43:55.200> info<00:43:55.440> for<00:43:55.560> these<00:43:55.800> look<00:43:56.000> like,<00:43:56.200> so<00:43:56.720> I<00:43:56.800> feel\ntype info for these look like, so I feel\ntype info for these look like, so I feel >> Slice<00:43:57.520> slice<00:43:58.000> is<00:43:58.200> just<00:43:58.640> the<00:43:59.000> brackets<00:43:59.720> without\n>> Slice slice is just the brackets without\n>> Slice slice is just the brackets without anything,<00:44:00.720> and<00:44:00.880> if<00:44:01.000> you<00:44:01.120> put<00:44:01.320> in\nanything, and if you put in\nanything, and if you put in >> Oh,<00:44:01.840> you<00:44:02.040> thought<00:44:02.280> yeah,<00:44:02.480> you<00:44:02.600> thought<00:44:03.160> you\n>> Oh, you thought yeah, you thought you\n>> Oh, you thought yeah, you thought you thought<00:44:03.360> JAI,<00:44:03.880> yeah.\nthought JAI, yeah.\nthought JAI, yeah. >> It's<00:44:04.200> the<00:44:04.265> [laughter]<00:44:04.320> dynamic.\n>> It's the [laughter] dynamic.\n>> It's the [laughter] dynamic. >> Yeah,<00:44:05.120> but<00:44:05.320> is<00:44:05.440> dynamic,<00:44:05.920> actually.<00:44:06.200> Okay,\n>> Yeah, but is dynamic, actually. Okay,\n>> Yeah, but is dynamic, actually. Okay, yeah.<00:44:06.720> So,<00:44:07.120> if<00:44:07.240> I<00:44:07.320> did<00:44:07.560> this,<00:44:08.560> uh<00:44:08.640> I<00:44:08.680> don't<00:44:08.920> know\nyeah. So, if I did this, uh I don't know\nyeah. So, if I did this, uh I don't know if<00:44:09.160> this<00:44:09.400> is<00:44:09.560> a<00:44:09.640> good<00:44:09.760> example<00:44:10.240> in<00:44:10.320> this.\nif this is a good example in this.\nif this is a good example in this. Uh<00:44:11.960> oh,<00:44:12.120> like<00:44:12.400> invader<00:44:12.800> maps.<00:44:13.680> I<00:44:13.760> guess<00:44:13.920> that's\nUh oh, like invader maps. I guess that's\nUh oh, like invader maps. I guess that's a<00:44:14.120> dynamic<00:44:14.560> array.<00:44:14.720> So,<00:44:14.880> invader\na dynamic array. So, invader\na dynamic array. So, invader invader<00:44:17.200> maps.<00:44:17.480> Let<00:44:17.600> me<00:44:17.680> just<00:44:17.800> make<00:44:17.960> sure<00:44:18.080> that\ninvader maps. Let me just make sure that\ninvader maps. Let me just make sure that this<00:44:18.360> is<00:44:18.480> non-zero<00:44:19.120> at<00:44:19.240> some<00:44:19.440> point.<00:44:20.080> Um\nLike<00:44:22.840> if<00:44:22.960> I<00:44:23.080> go<00:44:23.320> through<00:44:23.560> here,\nLike if I go through here,\nLike if I go through here, is<00:44:24.760> it<00:44:24.840> going<00:44:24.960> to<00:44:25.040> load<00:44:25.280> the<00:44:25.360> maps<00:44:25.680> at<00:44:25.760> some\nis it going to load the maps at some\nis it going to load the maps at some point?\npoint?\npoint? Oh,<00:44:28.400> yeah,<00:44:28.640> okay.<00:44:28.880> Invader<00:44:29.160> maps<00:44:29.440> count<00:44:29.760> for\nOh, yeah, okay. Invader maps count for\nOh, yeah, okay. Invader maps count for Okay,<00:44:30.400> so<00:44:30.520> we'll<00:44:30.640> do\nOkay, so we'll do\nOkay, so we'll do um\num\num data<00:44:33.160> and<00:44:33.280> count<00:44:33.680> is<00:44:34.040> all<00:44:34.160> we<00:44:34.280> need.<00:44:34.680> So,<00:44:34.800> we\ndata and count is all we need. So, we\ndata and count is all we need. So, we can<00:44:35.000> go<00:44:35.120> ahead<00:44:35.280> and<00:44:35.400> do,<00:44:35.640> \"Hey,\num\num\num we'll<00:44:39.640> do<00:44:39.800> array\nwe'll do array\nwe'll do array data\ndata\ndata and<00:44:42.160> count.\nand count.\nand count. And<00:44:43.600> there<00:44:43.720> we<00:44:43.800> go.\nAnd there we go.\nAnd there we go. So,<00:44:45.600> now<00:44:45.760> we<00:44:45.840> just<00:44:46.040> get<00:44:46.160> the<00:44:46.240> array<00:44:46.440> view.\nSo, now we just get the array view.\nSo, now we just get the array view. Nice.\nNice.\nNice. >> So,\n>> So,\n>> So, Uh<00:44:49.640> so,<00:44:49.800> yeah.<00:44:50.320> That's<00:44:50.640> um\nUh so, yeah. That's um\nUh so, yeah. That's um You<00:44:52.080> can<00:44:52.200> see<00:44:52.360> unit<00:44:52.640> color.\nYou can see unit color.\nYou can see unit color. Uh<00:44:54.120> well,<00:44:54.440> I<00:44:54.520> don't<00:44:54.760> want<00:44:54.880> to<00:44:54.920> put<00:44:55.080> it<00:44:55.200> that\nUh well, I don't want to put it that\nUh well, I don't want to put it that onto<00:44:55.640> a<00:44:55.680> vector<00:44:55.960> four,<00:44:56.200> cuz<00:44:56.320> that's<00:44:56.520> a<00:44:56.600> general\nonto a vector four, cuz that's a general\nonto a vector four, cuz that's a general general<00:44:57.720> type.<00:44:58.000> But,<00:44:58.400> yeah,<00:44:58.600> anyways.\ngeneral type. But, yeah, anyways.\ngeneral type. But, yeah, anyways. Um\nUm\nUm So,<00:45:00.240> yeah,<00:45:00.320> that's<00:45:00.480> probably<00:45:00.680> a<00:45:00.720> good<00:45:00.840> place\nSo, yeah, that's probably a good place\nSo, yeah, that's probably a good place to<00:45:01.120> stop.<00:45:01.480> Um<00:45:01.680> I<00:45:01.760> guess<00:45:02.000> the<00:45:02.400> the\nto stop. Um I guess the the\nto stop. Um I guess the the I<00:45:04.720> can<00:45:04.840> also<00:45:05.040> do<00:45:05.200> Odin<00:45:05.720> as<00:45:05.880> well.<00:45:06.000> Since<00:45:06.200> I\nI can also do Odin as well. Since I\nI can also do Odin as well. Since I showed<00:45:06.440> Jai,<00:45:06.680> I<00:45:06.800> can<00:45:06.960> show<00:45:07.120> Odin.\nshowed Jai, I can show Odin.\nshowed Jai, I can show Odin. Here's<00:45:08.320> the<00:45:08.400> Odin<00:45:08.880> example<00:45:09.240> program.\nHere's the Odin example program.\nHere's the Odin example program. Um\nUm\nUm yeah.<00:45:11.680> Same<00:45:11.920> stuff.<00:45:12.840> Usual<00:45:13.520> debugging\nyeah. Same stuff. Usual debugging\nyeah. Same stuff. Usual debugging features<00:45:14.280> just<00:45:14.440> available\nfeatures just available\nfeatures just available for<00:45:15.680> all<00:45:15.760> these<00:45:15.920> languages.<00:45:16.360> So,\nfor all these languages. So,\nfor all these languages. So, >> Nice.\n>> Nice.\n>> Nice. >> Yeah.\n>> Yeah.\n>> Yeah. >> Nice.\n>> Nice.\n>> Nice. All<00:45:21.960> right.\nAll right.\nAll right. Then,\nThen,\nThen, we're<00:45:25.040> going<00:45:25.200> to<00:45:25.280> switch<00:45:25.600> to<00:45:25.720> source<00:45:26.120> code.\nwe're going to switch to source code.\nwe're going to switch to source code. Now,<00:45:26.640> do<00:45:26.760> you<00:45:26.880> want<00:45:27.160> a<00:45:27.240> little<00:45:27.400> bit<00:45:27.520> of<00:45:27.640> break?\nNow, do you want a little bit of break?\nNow, do you want a little bit of break? >> Sweet.\n>> Sweet.\n>> Sweet. >> Or\n>> Or\n>> Or >> Uh<00:45:30.000> I'm<00:45:30.200> okay<00:45:30.480> to<00:45:30.560> keep<00:45:30.720> going.<00:45:31.040> I<00:45:31.080> mean,<00:45:31.280> we\n>> Uh I'm okay to keep going. I mean, we\n>> Uh I'm okay to keep going. I mean, we can<00:45:31.480> take<00:45:31.640> a<00:45:31.680> break<00:45:31.840> if<00:45:31.960> you<00:45:32.080> if<00:45:32.200> that<00:45:32.360> helps.\ncan take a break if you if that helps.\ncan take a break if you if that helps. Um\nUm\nUm I<00:45:33.960> don't<00:45:34.160> need<00:45:34.320> it<00:45:34.520> necessarily.\nI don't need it necessarily.\nI don't need it necessarily. >> Uh\n>> Uh\n>> Uh if<00:45:36.720> you<00:45:37.280> can<00:45:37.480> keep<00:45:37.720> going,<00:45:38.000> then<00:45:38.160> let's<00:45:38.440> keep\nif you can keep going, then let's keep\nif you can keep going, then let's keep going.\ngoing.\ngoing. I'm<00:45:40.080> looking<00:45:40.480> taking<00:45:40.760> a<00:45:40.800> look<00:45:40.960> at<00:45:41.080> the<00:45:41.680> chat.\nI'm looking taking a look at the chat.\nI'm looking taking a look at the chat. My<00:45:43.320> idea<00:45:44.000> would<00:45:44.240> be<00:45:44.440> to<00:45:44.680> sort<00:45:44.920> of<00:45:45.160> do<00:45:45.920> first\nMy idea would be to sort of do first\nMy idea would be to sort of do first like<00:45:46.440> a<00:45:46.480> bit<00:45:46.640> of<00:45:46.760> a<00:45:46.840> high<00:45:47.040> level,<00:45:47.640> and<00:45:47.800> then\nlike a bit of a high level, and then\nlike a bit of a high level, and then we'll<00:45:48.120> pick<00:45:48.360> some<00:45:48.560> parts<00:45:48.920> where<00:45:49.080> we<00:45:49.200> can<00:45:49.320> dive\nwe'll pick some parts where we can dive\nwe'll pick some parts where we can dive into.<00:45:50.360> So,\ninto. So,\ninto. So, >> Okay,<00:45:51.120> sure.\n>> Okay, sure.\n>> Okay, sure. >> you<00:45:51.600> know.<00:45:52.160> I<00:45:52.280> think<00:45:52.520> the<00:45:52.640> first<00:45:53.720> uh<00:45:54.560> first\n>> you know. I think the first uh first\n>> you know. I think the first uh first part<00:45:55.640> could<00:45:55.920> be<00:45:56.240> a<00:45:56.360> little<00:45:56.520> bit<00:45:56.640> about<00:45:57.000> like\npart could be a little bit about like\npart could be a little bit about like high<00:45:57.360> level<00:45:57.760> structure,<00:45:58.880> what<00:45:59.120> is<00:45:59.280> where<00:45:59.640> in\nhigh level structure, what is where in\nhigh level structure, what is where in terms<00:46:00.080> of<00:46:00.720> source<00:46:01.120> code,<00:46:01.440> so<00:46:01.520> that<00:46:01.760> we<00:46:01.840> don't\nterms of source code, so that we don't\nterms of source code, so that we don't get<00:46:02.680> too<00:46:02.960> too<00:46:03.200> lost<00:46:04.160> immediately.\nget too too lost immediately.\nget too too lost immediately. >> Got<00:46:04.800> it.\n>> Got it.\n>> Got it. Okay.\nOkay.\nOkay. Um\nUm\nUm >> Oh,<00:46:10.080> there<00:46:10.240> was<00:46:10.480> there<00:46:10.640> was<00:46:10.840> one<00:46:11.160> there<00:46:11.320> was\n>> Oh, there was there was one there was\n>> Oh, there was there was one there was one<00:46:11.640> question<00:46:12.120> that<00:46:12.240> was<00:46:12.440> repeated<00:46:13.320> a<00:46:13.360> lot<00:46:13.640> of\none question that was repeated a lot of\none question that was repeated a lot of times<00:46:14.120> in<00:46:14.200> the<00:46:14.320> chat.<00:46:15.160> When<00:46:15.640> uh<00:46:15.920> the<00:46:16.080> debugger\ntimes in the chat. When uh the debugger\ntimes in the chat. When uh the debugger will<00:46:16.720> become<00:46:17.240> a<00:46:17.360> code<00:46:17.720> editor?\nwill become a code editor?\nwill become a code editor? >> [laughter]\n>> [laughter]\n>> [laughter] >> Uh<00:46:20.960> so,<00:46:21.640> that's<00:46:21.920> like<00:46:22.080> very<00:46:22.360> long<00:46:22.640> term.<00:46:23.320> If<00:46:23.480> we\n>> Uh so, that's like very long term. If we\n>> Uh so, that's like very long term. If we ever<00:46:23.760> decide<00:46:24.080> to<00:46:24.160> do<00:46:24.320> that,<00:46:24.640> it's<00:46:24.760> just<00:46:24.960> that\never decide to do that, it's just that\never decide to do that, it's just that there's<00:46:25.520> so<00:46:25.680> much<00:46:25.960> debugging<00:46:26.400> stuff<00:46:26.640> we<00:46:26.720> need\nthere's so much debugging stuff we need\nthere's so much debugging stuff we need to<00:46:26.960> do<00:46:27.120> first<00:46:27.560> that<00:46:28.040> we're<00:46:28.360> going<00:46:28.520> to<00:46:28.920> we're\nto do first that we're going to we're\nto do first that we're going to we're focusing<00:46:29.360> on<00:46:29.440> debugger<00:46:29.720> stuff<00:46:30.000> first<00:46:30.200> because\nfocusing on debugger stuff first because\nfocusing on debugger stuff first because it's<00:46:30.640> more<00:46:30.840> important.<00:46:31.680> Like<00:46:31.840> there<00:46:31.960> are\nit's more important. Like there are\nit's more important. Like there are plenty<00:46:32.320> of<00:46:32.400> editors<00:46:32.800> available<00:46:33.280> on<00:46:33.400> Linux,\nplenty of editors available on Linux,\nplenty of editors available on Linux, right?<00:46:34.080> But<00:46:34.280> there's<00:46:34.520> really<00:46:34.720> not<00:46:34.880> that<00:46:35.040> many\nright? But there's really not that many\nright? But there's really not that many graphical<00:46:35.880> like<00:46:36.120> good<00:46:36.360> graphical<00:46:36.720> editors<00:46:37.080> on\ngraphical like good graphical editors on\ngraphical like good graphical editors on Linux.<00:46:38.040> And<00:46:38.160> so,<00:46:38.280> the<00:46:38.400> debugger's<00:46:38.920> really<00:46:39.120> the\nLinux. And so, the debugger's really the\nLinux. And so, the debugger's really the high<00:46:39.440> value<00:46:39.760> thing<00:46:39.880> we<00:46:40.000> want<00:46:40.120> to<00:46:40.200> provide\nhigh value thing we want to provide\nhigh value thing we want to provide first.<00:46:41.480> I<00:46:41.560> think<00:46:41.800> someday<00:46:42.200> it'll<00:46:42.400> make<00:46:42.560> a\nfirst. I think someday it'll make a\nfirst. I think someday it'll make a whole<00:46:42.840> lot<00:46:43.000> of<00:46:43.080> sense<00:46:43.320> to<00:46:43.440> put<00:46:43.640> editing\nwhole lot of sense to put editing\nwhole lot of sense to put editing functionality<00:46:44.520> inside<00:46:44.960> because<00:46:45.560> it's<00:46:45.640> not\nfunctionality inside because it's not\nfunctionality inside because it's not even<00:46:46.360> it's<00:46:46.480> not<00:46:46.640> even<00:46:46.800> for<00:46:47.080> the<00:46:47.280> purposes<00:46:47.680> of\neven it's not even for the purposes of\neven it's not even for the purposes of being<00:46:47.960> a<00:46:48.000> code<00:46:48.200> editor.<00:46:49.000> It's<00:46:49.160> really<00:46:49.360> because\nbeing a code editor. It's really because\nbeing a code editor. It's really because with<00:46:50.120> multi-line<00:46:50.720> string<00:46:51.000> visualization,<00:46:51.960> so\nwith multi-line string visualization, so\nwith multi-line string visualization, so if<00:46:52.240> I,<00:46:52.360> you<00:46:52.480> know,<00:46:52.680> if<00:46:52.840> I<00:46:52.880> go<00:46:53.000> back<00:46:53.200> to<00:46:53.280> those\nif I, you know, if I go back to those\nif I, you know, if I go back to those examples<00:46:53.840> where<00:46:53.920> I<00:46:53.960> had<00:46:54.080> that<00:46:54.240> long<00:46:54.520> string\nexamples where I had that long string\nexamples where I had that long string that<00:46:55.000> I<00:46:55.040> showed<00:46:55.760> in<00:46:55.880> the<00:46:55.960> text<00:46:56.160> visualizer\nthat I showed in the text visualizer\nthat I showed in the text visualizer just<00:46:56.840> like<00:46:57.040> the<00:46:57.280> just<00:46:57.440> like<00:46:57.520> the<00:46:57.600> source<00:46:57.800> code.\njust like the just like the source code.\njust like the just like the source code. If<00:46:59.160> you're<00:46:59.320> working<00:46:59.640> with<00:46:59.760> a<00:46:59.800> lot<00:47:00.000> of<00:47:00.040> text\nIf you're working with a lot of text\nIf you're working with a lot of text data<00:47:01.280> and<00:47:01.400> you're<00:47:01.520> debugging,<00:47:01.960> like<00:47:02.080> we<00:47:02.200> can\ndata and you're debugging, like we can\ndata and you're debugging, like we can edit<00:47:02.520> things<00:47:02.720> in<00:47:02.800> the<00:47:02.840> memory<00:47:03.200> view,<00:47:03.680> we<00:47:03.800> can\nedit things in the memory view, we can\nedit things in the memory view, we can edit<00:47:04.200> the<00:47:04.320> colors,<00:47:04.840> we<00:47:04.960> can<00:47:05.080> edit<00:47:05.400> like<00:47:06.000> we<00:47:06.120> can\nedit the colors, we can edit like we can\nedit the colors, we can edit like we can edit<00:47:06.400> values<00:47:06.760> inside<00:47:06.960> the<00:47:07.040> watch<00:47:07.240> window.\nedit values inside the watch window.\nedit values inside the watch window. It's<00:47:08.000> like<00:47:08.200> really<00:47:08.440> all<00:47:08.560> these<00:47:08.720> visualizers\nIt's like really all these visualizers\nIt's like really all these visualizers should<00:47:09.480> also<00:47:09.680> have<00:47:09.840> editing<00:47:10.120> functionality\nshould also have editing functionality\nshould also have editing functionality at<00:47:10.960> the<00:47:11.080> limit.<00:47:11.440> So,<00:47:11.560> I<00:47:11.640> think<00:47:11.840> that<00:47:12.120> should\nat the limit. So, I think that should\nat the limit. So, I think that should apply<00:47:12.600> also<00:47:12.840> to<00:47:12.960> the<00:47:13.040> text<00:47:13.280> visualizer,<00:47:14.160> which\napply also to the text visualizer, which\napply also to the text visualizer, which means<00:47:14.800> it<00:47:14.960> necessarily<00:47:15.560> also<00:47:15.800> has<00:47:15.960> to<00:47:16.080> apply\nmeans it necessarily also has to apply\nmeans it necessarily also has to apply to<00:47:17.240> source<00:47:17.560> code<00:47:17.800> views,<00:47:18.480> right?<00:47:18.800> So,<00:47:19.080> it's\nto source code views, right? So, it's\nto source code views, right? So, it's it's<00:47:19.880> I<00:47:19.960> think<00:47:20.160> eventually<00:47:20.600> it'll<00:47:20.760> become\nit's I think eventually it'll become\nit's I think eventually it'll become that.<00:47:21.760> Um\nthat. Um\nthat. Um but<00:47:22.640> it's<00:47:22.760> just<00:47:22.920> not<00:47:23.360> the<00:47:23.440> high<00:47:23.680> priority\nbut it's just not the high priority\nbut it's just not the high priority right<00:47:24.440> now<00:47:24.560> cuz<00:47:24.760> obviously<00:47:25.040> we<00:47:25.120> have<00:47:25.240> the\nright now cuz obviously we have the\nright now cuz obviously we have the porting<00:47:25.720> stuff<00:47:25.960> to<00:47:26.040> do<00:47:26.240> before<00:47:26.440> we<00:47:26.520> get<00:47:26.640> to<00:47:26.760> all\nporting stuff to do before we get to all\nporting stuff to do before we get to all the<00:47:27.040> fancy<00:47:27.440> stuff.<00:47:27.800> We<00:47:27.880> have<00:47:28.000> porting<00:47:28.400> to<00:47:28.520> do\nthe fancy stuff. We have porting to do\nthe fancy stuff. We have porting to do both<00:47:29.320> to<00:47:29.560> Linux<00:47:29.920> but<00:47:30.040> also<00:47:30.400> to<00:47:30.600> from<00:47:30.800> x64<00:47:31.440> to\nboth to Linux but also to from x64 to\nboth to Linux but also to from x64 to arm,<00:47:32.520> um<00:47:32.880> and<00:47:32.960> then<00:47:33.080> probably<00:47:33.520> like<00:47:33.720> risk<00:47:34.000> five\narm, um and then probably like risk five\narm, um and then probably like risk five or<00:47:34.480> whatever,<00:47:34.960> and<00:47:35.080> then<00:47:35.360> like<00:47:35.840> we<00:47:35.920> just<00:47:36.080> want\nor whatever, and then like we just want\nor whatever, and then like we just want to<00:47:36.280> start<00:47:36.480> doing<00:47:36.720> all<00:47:36.840> the<00:47:37.080> we<00:47:37.200> want<00:47:37.320> to<00:47:37.400> cover\nto start doing all the we want to cover\nto start doing all the we want to cover those<00:47:37.880> bases<00:47:38.320> first<00:47:38.800> so<00:47:38.920> that<00:47:39.080> we<00:47:39.160> don't<00:47:39.480> get\nthose bases first so that we don't get\nthose bases first so that we don't get ahead<00:47:39.840> of<00:47:39.960> ourselves,<00:47:40.960> um<00:47:41.280> and<00:47:41.400> build<00:47:42.080> all\nahead of ourselves, um and build all\nahead of ourselves, um and build all those<00:47:42.440> kinds<00:47:42.680> of<00:47:42.760> crazy<00:47:43.040> features<00:47:43.400> on<00:47:43.520> a\nthose kinds of crazy features on a\nthose kinds of crazy features on a really<00:47:43.960> unstable<00:47:44.440> foundation.<00:47:44.960> So,<00:47:45.040> we<00:47:45.160> want\nreally unstable foundation. So, we want\nreally unstable foundation. So, we want to<00:47:45.360> make<00:47:45.440> sure<00:47:45.560> to<00:47:45.640> do<00:47:45.760> it<00:47:45.920> really<00:47:46.440> really<00:47:46.800> uh\nto make sure to do it really really uh\nto make sure to do it really really uh um\num\num really<00:47:49.120> appropriately,<00:47:50.080> I<00:47:50.160> guess<00:47:50.320> is<00:47:50.440> what<00:47:50.560> I\nreally appropriately, I guess is what I\nreally appropriately, I guess is what I would<00:47:50.720> say.<00:47:51.200> Um<00:47:51.520> so,<00:47:51.840> not<00:47:52.160> anytime<00:47:52.560> soon,<00:47:53.080> but\nwould say. Um so, not anytime soon, but\nwould say. Um so, not anytime soon, but there<00:47:53.600> are<00:47:53.800> a<00:47:53.840> lot<00:47:54.040> of<00:47:54.120> features<00:47:54.480> in<00:47:54.560> the<00:47:54.640> rad\nthere are a lot of features in the rad\nthere are a lot of features in the rad debugger<00:47:55.120> to<00:47:56.000> hook<00:47:56.200> up<00:47:56.360> to<00:47:56.480> an<00:47:56.600> editor,\ndebugger to hook up to an editor,\ndebugger to hook up to an editor, which<00:47:58.120> I<00:47:58.160> could<00:47:58.320> talk<00:47:58.480> about,<00:47:58.680> too,<00:47:58.840> but<00:47:59.640> um\nwhich I could talk about, too, but um\nwhich I could talk about, too, but um anyways.\nanyways.\nanyways. >> [music]\n[music]\n[music]", "fetched_at": "2026-06-29T15:02:02.515849+00:00" }