Re: [Bug win32/14529] Make gdb capable of JIT-debugging on W32

Pedro Alves
2012-09-11T18:27:53Z

On 09/11/2012 07:23 PM, LRN wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 11.09.2012 22:08, Pedro Alves wrote:
>> On 08/31/2012 04:37 PM, LRN wrote:
>>>>>>> @@ -1055,6 +1065,7 @@ Options:\n\n\ --dbx
>>>>>>> DBX compatibility mode.\n\ --directory=DIR Search for
>>>>>>> source files in DIR.\n\ --epoch Output
>>>>>>> information used by epoch emacs-GDB interface.\n\ +
>>>>>>> --event=EVENT Signal the EVENT when attached to a
>>>>>>> process. W32 only.\n\
>>>>>
>>>>> And also this part.
>>> They were, initially. However, gdb contribution documentation
>>> said that gdb devs frown upon extra #ifdefs in files that are
>>> not platform-specific. The code is mostly platform independent,
>>> it's the two W32API functions that only work on W32 (and you can
>>> write non-W32 equivalent, if you figure out how to make it work).
>>> Thus, i removed extra #ifdefs in main.c and other files.
>>
>> Please consider also cross builds. IOW, a gdb hosted on Windows,
>> but that is built to target something else. In that case, as is,
>> you will end up with the option compiled in. But if you remove
>> any mention that this is for Windows only, it'll be confusing.
> OK, that means moving configure.ac patches from $host_os case
> to...where? Should i just make a new
> case "${target}" in
> *cygwin*|*mingw*) default_w32_jitdbg=1
> ;;
> esac
> somewhere? Is it ${target}, or ${target_os}? What if there are
> multiple targets (i've seen something like that in configure.ac)?

Right, that's the issue -- you can't just check the target, because
there might be more than one. So the option should be clear
at what it does, and where it applies.

>
>> I'd maybe go as far as renaming the option to --w32-jit-event or
>> --aedebug-event, or some such.
>>
> I don't really care how it's named. Agree on something, and i'll
> change the patch.

I don't care either, as long as it isn't confusing on the cross
scenario. :-)

> That said, w32-jit-event sounds closer to truth, since it's not
> exclusive to AeDebug (as i have said, you can use it manually, if you
> have your own exception handler that runs gdb).

Alright.

>
>> Alternatively, and perhaps it really is a better option, get rid of
>> the --event option, but make this a real command, implemented in
>> windows-nat.c, so that the user has better control of when to
>> signal the event, like:
>>
>> gdb -ex "foo" -ex "bar" -ex "attach PID" -ex "signal-aedebug-event
>> FOO"
>>
> That's an interesting option. Will require better documentation though
> (i haven't realized that i can do that until now; shows how well i
> know gdb :). And i'll need to test it to make sure that W32 is
> actually capable of, say, replacing a quoted %ld...
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.11 (MingW32)
> Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
>
> iQEcBAEBAgAGBQJQT4GLAAoJEOs4Jb6SI2CwlH0IALrpqt+UsJxUQiQHd1HHJ7nU
> 8Zb9SO2Vu14//QNdpVh8cWExoOGTvNR7buKjRvYHbbB4lw83ZbYV4TuzaBoR96+/
> s7ty3AH8sztJtQVXcQ/kSV4MUx8HQfRzBGvPyHQcCNgNQ5THH2sBAn439yHExqDv
> F+dmKFbXQ8Y4znAjMRyuNqIcf+tg327UtA9kaAdYyW2r7lAaFRBW65ls2OJmBX+v
> Uzi1PY7s50L+k0XIzp08tEbQvhev/0J1/mHYr1COp4Z3pdjLtAENLfvkYnpXHQHD
> /w8NAmUnKrN65mQbE/sZtAmdM+WOo33XC9MagDvSdpFgFrBQClR6k7D0nkBfznM=
> =PM36
> -----END PGP SIGNATURE-----
>

--
Pedro Alves