[video output=day202 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Multiply Appearing Debug Values" vod_platform=youtube id=JTwMFtyuL6M annotator=Miblo]
[0:28][Debugger: Enabling "Go To Definition / Declaration" feature]
[3:10][Internet: Building Browse Information Files: Overview[ref
    site="MSDN"
    page="Building Browse Information Files: Overview"
    url="https://msdn.microsoft.com/en-us/library/f403he0y.aspx"]]
[4:00][build.bat: Add -FR flag]
[7:18][Debugger: Show a dummy win32 project with this browse info enabled]
[7:55][build.bat: Remove -FR flag and delete the *.bsc and *.sbr files]
[8:13][Recap our current status]
[8:59]["Patience is a virtue"][quote 268]
[12:12][Set the stage for the day]
[13:55][handmade_debug.h: Introduce debug_variable_link]
[15:10][handmade_debug_variables.h: Introduce DEBUGAddVariableToGroup]
[17:18][handmade.h: #define DLIST_INSERT]
[18:40][handmade_debug_variables.h and handmade_debug.cpp: Use this DLIST_INSERT macro]
[19:59][handmade_debug_variables.h: Continue cleaning up]
[20:57][handmade.h: #define DLIST_INIT]
[22:05][handmade_debug.h: Consider whether we want to store parent pointers for variables]
[23:25][handmade_debug_variables.h: Introduce debug_variable_group_builder to enable DEBUGEndVariableGroup to pass the parent VarGroup back]
[25:07][handmade_debug_variables.h: Add a GroupDepth and *GroupStack array to debug_variable_definition_context to show another way to solve this problem]
[29:13][handmade_debug.cpp: Initialise that GroupStack in debug_variable_definition_context]
[31:07][handmade_debug_variables.h: Continue on cleaning up compile errors]
[33:05][Blackboard: Traversing trees using pointers and then stacks]
[38:08][handmade_debug.cpp: Add *Stack to WriteHandmadeConfig]
[41:51][Blackboard: The natural order of the stack]
[45:40][handmade_debug.cpp: Introduce debug_variable_iterator to augment the stack]
[52:39][handmade_debug.cpp: Continue cleaning up compile errors]
[54:15][handmade_debug.cpp: Unwind the stack iteration loop]
[56:25][handmade_debug.cpp: Use our stack implementation in DEBUGDrawMainMenu]
[57:25][handmade_debug.cpp: Continue cleaning up compile errors]
[1:00:46][handmade_debug.cpp: Introduce a dummy GetDebugViewFor]
[1:01:18][Correctly spell "variable"][quote 269]
[1:01:27][handmade_debug.cpp: Finish cleaning up compile errors]
[1:03:49]["That's the end of that"][quote 271]
[1:04:51][Q&A][:speech]
[1:05:19][@TheSizik][Does it work?]
[1:07:32][@diaboIix17][Earlier in the stream you said that you once spent 10 weeks on a problem. What was that problem?]
[1:09:03][@insofaras][Have you considered using intrusive linked lists like those in the Linux kernel that use offsetof()]
[1:10:03][@ijustwantfood][How portable will the game engine be? Could it be used to make other games?]
[1:10:42][@cubercaleb][Curve Solver?]
[1:11:05][@insofaras][Will we ever see the memory chunk debug visualization?]
[1:12:32][@Imapushover][What flavour of Linux on your laptop today, and what will it be on Monday]
[1:13:02][@insofaras][By the way, I think the Linux kernel implementation can have something in multiple lists at once]
[1:13:24][Blackboard: Linked lists]
[1:14:35][@Angrycrow][Can you give me a quick rundown again of how you're substituting the stack for instances of the debug view?]
[1:15:01][@MartinCohen][So what do you use as a "formatting language" usually?]
[1:15:55][@cubercaleb][Is this how you do UI in your other programs?]
[1:16:44][Call it done][:speech]
[/video]
