Re: Can't get into debugger in vscode on macOS

2023-10-19 Thread Daniel Zuncke via Digitalmars-d-learn

On Thursday, 19 October 2023 at 15:25:36 UTC, ryuukk_ wrote:

```
"stopOnEntry": true,
```


Thanks, my bad I missed that. The entry point I get is a dynamic 
link error and the program exits after trying to do a single step 
(I've put the asm below).


Since calling `./bin/dfmt` works in the terminal and from lldb in 
the terminal I don't see how any linker error makes sense or why 
calling it from code lldb should be different.


The only maybe related thing I can think of is that dmd produces 
linker error too (below). I have both ldc2 and dmd installed but 
dmd doesn't work for me (dmd neither functions if installed with 
brew or the install.sh). I had problems with the debugger already 
when dmd wasn't installed but RemedyBG debugger has problems with 
debugging llvm executables and dmd works so I wanted to try both 
here.


I have found that the cpp debugger works to step around which 
might be enough for now so I am not wasting more time here if I 
don't have to. Thanks for the suggestions though. If you want me 
to try something I can do that.


`stopOnEntry` brings me here:
```asm
; Symbol: _dyld_start
; Source: unknown
1006BD040: 48 89 E7movq   %rsp, %rdi
1006BD043: 48 83 E4 F0 andq   $-0x10, %rsp
1006BD047: 48 C7 C5 00 00 00 00movq   $0x0, %rbp
1006BD04E: 6A 00   pushq  $0x0
1006BD050: E9 BB 0B 00 00  jmp0x1006bdc10  ; start
```

dmd linker error running `dub build --build debug --compiler 
dmd`; dub.json has  `"lflags": ["-ld_classic", "-v"]` specified 
so I don't know why clang suggests to specify `-v`.

```
@(#)PROGRAM:ld  PROJECT:dyld-1015.7
BUILD 18:48:43 Aug 22 2023
configured to support archs: armv6 armv7 armv7s arm64 arm64e 
arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em
will use ld-classic for: armv6 armv7 armv7s arm64_32 i386 armv6m 
armv7k armv7m armv7em
LTO support using: LLVM version 15.0.0 (static support for 29, 
runtime is 29)

TAPI support using: Apple TAPI version 15.0.0 (tapi-1500.0.12.3)
Library search paths:
/usr/local/opt/dmd/lib
/usr/local/lib
Framework search paths:
ld: multiple errors: symbol count from symbol table and dynamic 
symbol table differ in 
'/Users/dz/.dub/cache/dfmt/~master/build/application-debug-tVygsEVCB8Pzk4_L3pjNiA/dfmt.o' in '/Users/dz/.dub/cache/dfmt/~master/build/application-debug-tVygsEVCB8Pzk4_L3pjNiA/dfmt.o'; address=0x0 points to section(2) with no content in '/usr/local/opt/dmd/lib/libphobos2.a[3177](config_a68_4c3.o)'
clang: error: linker command failed with exit code 1 (use -v to 
see invocation)

Error: linker exited with status 1
Error dmd failed with exit code 1.
```


Re: Can't get into debugger in vscode on macOS

2023-10-19 Thread Daniel Zuncke via Digitalmars-d-learn

On Thursday, 19 October 2023 at 14:30:06 UTC, evilrat wrote:

Could it be is that it instantly crashes?


Thanks, but I have found it doesn't get that far* while debugging 
in vscode, it seems to be a linker error.


\* If I randomly change program arguments (`--help`, 
`./tests/issue0578.d` or none) and recompile (same `dub build 
--build debug --compiler ldc2 --force`) it works maybe once in 20 
tries and I get into vs-code debugger, from then on it the 
program executes without error. Changing nothing and hitting 
debug after that gives an error again.


Can't get into debugger in vscode on macOS

2023-10-19 Thread Daniel Zuncke via Digitalmars-d-learn
Hello, I need some help getting into the debugger in vscode on 
macOS. It did work some months ago but that was finicky to set 
up. Maybe I am forgetting something now?


I am compiling the project with `dub build --build debug 
--compiler ldc2 --force` (the `-ld_classic` flag to fix the new 
Xcode linker is set in dub.json).


Debugging in the terminal with lldb works as expected `lldb 
bin/dfmt -- --help`.


In vscode I the debug process immediately exits with error (as 
far as I can tell, don't know how to get more output).
All required extensions should be installed since it worked some 
time ago (mainly CodeLLDB, code-d and C++ from what I remember).


I have tried 2 launch configs (launch.json):
```json
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "debug lldb",
"cwd": "${workspaceFolder}",
"program": "./bin/dfmt",
"args": ["--help"],
},
{
"type": "code-d",
"request": "launch",
"name": "debug code-d",
"cwd": "${workspaceFolder}",
"program": "./bin/dfmt",
"args": ["--help"],
},
]
}
```
And both fail the same way (vscode Debug Console output):
```
Launching: /Users/dz/dev/dfmt/issue578/bin/dfmt --help
Launched process 24999
Process exited with code -1.
```
Any ideas what the problem could be? Can I get more verbose 
output what the problem is after launching the process?