Debugger options: difference output between linux and windows

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Debugger options: difference output between linux and windows

Massimo Sala
Hi

I love TinyCC, it permits to stay focused on your C code when you can install a full C toolchain.

I am compiling the Lua interpreter, both Lua stable 5.3.5 and the latest 5.4.0-rc3.
Tcc compiles the source files without problems.

And without debugger options, the simple test of the Lua interpreter works fine:
    lua -v
    Lua 5.4.0  Copyright (C) 1994-2020 Lua.org, PUC-Rio


Now I add the debugger options -g -b :
* Windows:  -Wl,-subsystem=console -g -b
    lua -v
    no output

* linux:   -DLUA_USE_LINUX -g -b
   lua -v
   bcheck.c __bound_ptr_add: 0x7fffffffe66f is outside of the region
   bcheck.c bound_error: invalid pointer
   /opt/packages/tcc.sh: line 49: 19914 Segmentation fault      ./lua -v


From the output I cannot understand if this instrumentation is working and there is a problem in Lua, or there is a problem in the tcc instrumentation code.

I read at https://bellard.org/tcc/tcc-doc.html
    "Note: -b is only available on i386"
Does it mean cannot work on intel, 64 bits cpu ?

Best regards, Massimo


_______________________________________________
Tinycc-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/tinycc-devel
Reply | Threaded
Open this post in threaded view
|

Re: Debugger options: difference output between linux and windows

Michael Matz-4
Hello,

On Fri, 15 May 2020, Massimo Sala wrote:

> * linux:   -DLUA_USE_LINUX -g -b
>    lua -v
>    bcheck.c __bound_ptr_add: 0x7fffffffe66f is outside of the region
>    bcheck.c bound_error: invalid pointer
>    /opt/packages/tcc.sh: line 49: 19914 Segmentation fault      ./lua -v
>
> From the output I cannot understand if this instrumentation is working and
> there is a problem in Lua, or there is a problem in the tcc instrumentation
> code.
>
> I read at https://bellard.org/tcc/tcc-doc.html    "Note: -b is only
> available on i386"
> Does it mean cannot work on intel, 64 bits cpu ?
Nope, that's outdated docu, -b is supposed to work on x86-64.  But I fear
you'll have to debug this a bit on your own.  Current mob branch should
actually be a bit more verbose in telling where the invalid access is
happening, so it seems you're using an older version; please update to
current git.

In the worst case you can run the whole thing in a debugger and set a
breakpoint on bound_error or tcc_backtrace.  In recent mob branch you can
also set the environment variable TCC_BOUNDS_NEVER_FATAL to 1, in which
case the error is only logged but the program keeps running (and possibly
accessing the invalid pointer, which might turn out to be harmless).


Ciao,
Michael.
_______________________________________________
Tinycc-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/tinycc-devel