1
0
Fork 0

Compare commits

...

2 Commits

2 changed files with 24 additions and 14 deletions

View File

@ -1,6 +1,5 @@
# Debugging on OSX
**TODO: Figure out how to set breakpoints in Xcode**
**TODO: Figure out why Xcode detaches from the process after you take a Metal snapshot, leavin the window there forever**
## Basics
@ -16,20 +15,15 @@
Debugging this way, you can have Xcode run an executable in a .app or just from any directory. There do seem to be differences in the ways some graphics systems are initialized - I get different window scaling in each case.
### Breakpoints
_I can't get these to be set via the Xcode Debugger at the moment. I'm not sure why. As an alternative, you can set them via the lldb command line interface in Xcode, and then navigate the stack with the UI just fine._
**To set on a particular file/line**
To get breakpoints to work, you have to tell Xcode to treat your .jai files as source code.
`b --file <file_name> --line <line_number>`
1. Right click your file.
2. Select show file inspector.
3. In the Inspector, change Type from "Default - Plain Text" to "C Source"
**To set at the entry to a particular function**
`b <function_name>`
_Note: this doesn't work if function_name is "main" - it adds a baker's dozen of breakpoints at different places_
**To remove all breakpoints**
`breakpoint delete`
You should now be able to set breakpoints in that file.
As far as I can tell, there isn't a convenient way to set all .jai files to be loaded as C Source files so you have to do this individually.
## Graphics

View File

@ -2,7 +2,23 @@
This is heavily based (read: copy pasted + some modifications) on Thekla's module
MacOS_Bundler.jai, released with the jai compiler.
Usage:
For usage code, see package_macos_example.jai
This routine creates a .app file with the following structure:
output_path/
Entitlements.xcent
<output_name>.app/
Contents/
Info.plist
MacOS/
<output_name> <-- the executable, copied from args.exe_path
...copied in args.dynamic_libs
Resources/
icon_data.icns
...the contents of args.asset_directory
*/
#import "Basic";