1
0
Fork 0

Compare commits

..

No commits in common. "fc7bff4c68b17708cfb4b8aedcff5f730ee98502" and "427953c5f84933d1c90da921b28b5597f4d2b4cb" have entirely different histories.

2 changed files with 14 additions and 24 deletions

View File

@ -1,5 +1,6 @@
# 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
@ -9,21 +10,26 @@
3. Set the Build Tool for the target to either:
- `/usr/bin/true` - this is essentially a no-op if you want to be building elsewhere
- `../bin/build.sh` (or similar) - the path to your build script. IMPORTANT: it seems Xcode doesn't resolve absolute paths, just paths relative to the project location.
4. With the project open go to `Product > Scheme > Edit Scheme > Run > Info > Executable` and select the executable you want to run.
4. With the project open go to `Product > Scheme > Edit Scheme > Run > Info > Executable` and select the executable you want to run.
5. Cmd+R to Run.
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 get breakpoints to work, you have to tell Xcode to treat your .jai files as source code.
**To set on a particular file/line**
1. Right click your file.
2. Select show file inspector.
3. In the Inspector, change Type from "Default - Plain Text" to "C Source"
`b --file <file_name> --line <line_number>`
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.
**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`
## Graphics

View File

@ -2,23 +2,7 @@
This is heavily based (read: copy pasted + some modifications) on Thekla's module
MacOS_Bundler.jai, released with the jai compiler.
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
Usage:
*/
#import "Basic";