jjcherry56, your change works. And, since you found it, I upvoted the previous answer to 0, from -1.
So, I looked at that delta, and ended up making a small change explicitly.
In particular, I changed the part of the pattern:
string-match "^[ ]*frame
to
string-match "^.*frame
And it worked!
Admittedly, the "before" pattern (from jjcherry56's delta) in gud-lldb.el, ^[ ]*frame), was closer than ^frame (which was in the original modified gud.el, and which didn't work at all, and that file overwrote other language debuggers).
So, the modified pattern now takes anything from the beginning of the line to frame, rather than just zero or more blanks. Much closer, if not, in fact, "there" (not even thinking about boundary conditions of multiple instance of "frame" on the line, and other deep testing :-).
jjcherry56, I suspect that someone's original downvote was because of the reference to the asker as "nube", and the absence of a specific summary of the explanation (it was certainly not me, and it was perhaps excessive, especially considering that your change has merit, but I can understand the reaction).
The gud-lldb.el is definitely better for the reason(s) you stated, and your fix now allows me (and others (you too, Joe C)) to move forward in the quest to (continue to be able to) debug sanely using emacs/gud on the Mac.
PS I've tried everything to use gdb (I envy all those folks for whom it worked), no luck, so this is a saver. Hey, I can actually set a breakpoint at depth, and M-x lldb stops there, and gives me the arrow in the buffer (which it will pop up)!