Skip to content

Commit

Permalink
added microsoft link for natvis
Browse files Browse the repository at this point in the history
  • Loading branch information
bazrush committed Nov 25, 2015
1 parent ba8102c commit 336fba1
Showing 1 changed file with 39 additions and 13 deletions.
52 changes: 39 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,58 @@ juce-toys

## NATVIS

A NatVis file is provided to help with debugging in Visual Studio. You won't want to be without it. Refer to microsofts NatVis instructions for installation. It'll need to go in the right folder.
A NatVis file is provided to help with debugging in Visual Studio. You won't
want to be without it. Refer to Microsoft's NatVis instructions for
installation. It'll need to go in the right folder.

See https://msdn.microsoft.com/en-us/library/jj620914.aspx

## LLDB

An equivalent LLDB file is provided. Installation instructions are in the comments at the top of the file. See juce_lldb_xcode.py.
An equivalent LLDB file is provided. Installation instructions are in the
comments at the top of the file. See juce_lldb_xcode.py.

## JCF_DEBUG: JUCE Debugging Module

There are four development debugging utilities in the juce module jcf_debug.

I use these all the time. They are:
- ComponentDebugger - attach one of these to a component and get a list of all its children as a tree in a separate window. Problem components are marked in grey (not visible), yellow (off screen) or red (zero size). (See the screenshot png in the root folder)
- ValueTreeDebugger - attach this to a valuetree and a separate window will open where you can view (and change properties) of the tree.
- BufferDebugger - one of these can be used to view a buffer (typically an array of floats) when debugging DSP code. You can put a macros into your code at places you want to be able to inspect the buffer contents. I wrote it while debugging some auto-correlation code for a pitch shifter and it's been a life safer a couple of times since.
- FontAndColourDesigner - which allows you to easily flick between colours and fonts for a component. Handy when you are designing a UI. Though perhaps can be replaced with the Projucer these days!

The debuggers aren't pretty - but they are functional and shouldn't crash! Let me know if you get any problems!
- ComponentDebugger - attach one of these to a component and get a list of all
its children as a tree in a separate window. Problem components are marked
in grey (not visible), yellow (off screen) or red (zero size). (See the
screenshot png in the root folder)
- ValueTreeDebugger - attach this to a valuetree and a separate window will
open where you can view (and change properties) of the tree.
- BufferDebugger - one of these can be used to view a buffer (typically an
array of floats) when debugging DSP code. You can put a macros into your
code at places you want to be able to inspect the buffer contents. I wrote
it while debugging some auto-correlation code for a pitch shifter and it's
been a life safer a couple of times since.
- FontAndColourDesigner - which allows you to easily flick between colours and
fonts for a component. Handy when you are designing a UI. Though perhaps
can be replaced with the Projucer these days!

The debuggers aren't pretty - but they are functional and shouldn't crash! Let
me know if you get any problems!


** Other

A collection of parts and ideas which might be useful to people using JUCE.

- adsr_editor.cpp, adsr_editor.h - is a basic, but nice looking envelope editor.
- advanced_leak_detector.h - is a utility you can add to a class when you have a memory leak from an object. it returns the stack back-trace of the leaked objects allowing you to find out where in your maze of source-code-complexity you created them!
- garbage_collected_object - is a garbage collector i use for handling the deletion of objects on the message thread when the audio thread has finished with them.
- nonblocking_call_queue.h - provides a lock-free mechanism for inter-thread function calls. very useful in conjunction with the garbage collector.
- value_tree_clone.h - jules may have made this a relic of history with recent changes to JUCE, however this is the class I use for cloning a ValueTree from my message thread to my audio thread without locks (works in conjunction with the nonblocking call queue and the garbage collector).
- adsr_editor.cpp, adsr_editor.h - is a basic, but nice looking envelope
editor.
- advanced_leak_detector.h - is a utility you can add to a class when you have
a memory leak from an object. it returns the stack back-trace of the leaked
objects allowing you to find out where in your maze of source-code-complexity
you created them!
- garbage_collected_object - is a garbage collector i use for handling the
deletion of objects on the message thread when the audio thread has finished
with them.
- nonblocking_call_queue.h - provides a lock-free mechanism for inter-thread
function calls. very useful in conjunction with the garbage collector.
- value_tree_clone.h - jules may have made this a relic of history with recent
changes to JUCE, however this is the class I use for cloning a ValueTree from
my message thread to my audio thread without locks (works in conjunction with
the nonblocking call queue and the garbage collector).

0 comments on commit 336fba1

Please sign in to comment.