Commit Graph

44929 Commits

Author SHA1 Message Date
nickysn
850a321a23 + log the error message from gdb/mi error result records to the gdb window
git-svn-id: trunk@29783 -
2015-02-22 00:10:08 +00:00
nickysn
a1afce8a69 * fixed crash with the gdb/mi debugger, when trying to step/run a program with
the gdb window open

git-svn-id: trunk@29782 -
2015-02-21 23:37:24 +00:00
florian
6c99493181 * use USE_WINDOWS_API_THREAD_FUNCTIONS in the windows graph unit by default, resolves #27508
git-svn-id: trunk@29781 -
2015-02-21 22:43:00 +00:00
florian
9eab90d8c4 * always pass the architecture to the arm assembler
* encode pld/ldrd in arm.inc using .long, so it causes no errors with older architectures settings of the assembler

git-svn-id: trunk@29780 -
2015-02-21 21:58:30 +00:00
florian
80cc09e350 o fix wince compilation:
* apparently, wince (or GNU AS for it) does not support blx imm
  * set FPC_IN_SYSTEM directive, so assembler code in divide.inc is compiled right

git-svn-id: trunk@29779 -
2015-02-21 21:55:56 +00:00
nickysn
0c2054b9a3 + allow disabling the Extended/SGH 1006 mouse tracking mode introduced in r29773
by setting the environment variable FPC_DISABLE_SGR_EXT_MODE_MOUSE=1

git-svn-id: trunk@29778 -
2015-02-21 21:13:34 +00:00
florian
5946328ed6 * CPUs not having CMOV apparently do not support the newly introduced Multibyte NOPs (Agner, Optimizing subroutines in assembly
language, An optimization guide for x86 platforms, Page 87), so restored the 32 Bit part of the old alignment 
  bytes for use on those old CPUs and use it depending on the CPU switches

git-svn-id: trunk@29777 -
2015-02-21 20:50:42 +00:00
florian
de17e9fa1c + cpu capability CPUX86_HAS_CMOV
git-svn-id: trunk@29776 -
2015-02-21 20:47:40 +00:00
nickysn
6ef8a8afc9 * fixed bug which caused Ctrl-F1..F4 to be erroneously identified as
Shift-F1..F4 on certain xterm clones. Tested with konsole.

git-svn-id: trunk@29775 -
2015-02-21 18:33:47 +00:00
nickysn
5a8d02999f + support the keycodes returned for Ctrl-F1..F4, Alt-F1..F4 and Shift-F1..F4 on
modern versions of xterm and gnome3 terminal.

git-svn-id: trunk@29774 -
2015-02-21 18:18:22 +00:00
nickysn
97f2067762 + added support for the xterm enhanced/SGH 1006 mouse tracking mode. Tested
under:
  * xterm 308
  * gnome-terminal 3.14.2
  * konsole 4.14.3
  * lxterminal 0.1.11
  * xfce4-terminal 0.6.3
  * rxvt-unicode 9.21 (does not support SGH 1006, but has its own enhanced mouse
    tracking extension, which we don't support)
  * the linux console (does not use the xterm mouse protocol)

git-svn-id: trunk@29773 -
2015-02-21 16:00:19 +00:00
florian
255c4feef6 * new code alignment fillings based on the discussion at http://www.lazarusforum.de/viewtopic.php?f=10&t=8487
git-svn-id: trunk@29772 -
2015-02-21 10:09:39 +00:00
florian
ba3f0281b0 * fix compilation errors with -O2 due to dfa based warnings
git-svn-id: trunk@29771 -
2015-02-21 10:09:37 +00:00
svenbarth
d849734acd Specialize the correct generic if it has the same name as another generic that is located at another place of the type hierarchy.
pgenutils.pas:
  + generate_generic_name: new parameter owner_hierarchy to further influence the specialization name
  * generate_specialization: pass the ownerhierarchy name to generate_generic_name
pdecsub.pas, parse_proc_head:
  * parse_generic_interface: for now pass '' to the hierarchy parameter; it needs to be checked whether Delphi allows nested interfaces there as well

git-svn-id: trunk@29769 -
2015-02-20 16:28:44 +00:00
svenbarth
5a344ee263 Rework the way how "specialize" is handled. Instead of initializing the specialization of a full type declaration (including unit name and parent types) it is now considered part of the specialized type itself. This means that for example the following code:
type
  TTestLongInt = specialize SomeOtherUnit.TTest<LongInt>;

will now have to read as

type
  TTestLongInt = SomeOtherUnit.specialize TTest<LongInt>;

While this is not backwards compatible this situation should arise seldomly enough and the benefits especially in context with generic functions/procedures/methods outway the drawbacks.

pbase.pas:
  * try_consume_unitsym: add a allow_specialize parameter that allows to parse "specialize" in front of a non-unit symbol; whether it was a specialization or not is reported using a new is_specialize parameter
  + add a new overload try_consume_unitsym_no_specialize that calls try_consume_unit sym with allow_specialize=false and a dummy is_specialize parameter
  * switch calls to try_consume_unitsym to try_consume_unitsym_no_specialize
pstatmnt.pas, try_statement:
  * switch call to try_consume_unitsym to try_consume_unitsym_no_specialize
  * adjust call to parse_nested_types
ptype.pas:
  + extend id_type with the possibility to disallow unit symbols (needed if a specialize was already parsed) and to report whether a specialize was parsed
  + extend parse_nested_types with the possibility to tell it whether specializations are allowed
  * have parse_nested_types specialize generic defs if one is encountered and local type defs are allowed
  * id_type: only allow "unitsym.specialize sym" or "specialize sym", but not "specialize unitsym.sym"
  * single_type: correctly handle specializations with "specialize" keyword
  * read_named_type.expr_type: there is no longer a need to check for "specialize" keyword
pexpr.pas:
  + new function handle_specialize_inline_specialization which tries to specialize a type symbol
  * handle_factor_typenode: handle specializations after a point that follows a record or object (why isn't this part of postfixoperators anyway? O.o)
  * postfixoperators: handle "specialize" after records and objectdefs
  * factor_read_id: handle "specialize" in front of an identifier (and after unit symbols)

+ added tests
* adjusted test webtbs/tw16090.pp

git-svn-id: trunk@29768 -
2015-02-20 16:23:40 +00:00
marco
b2b56a4791 * Patch by Luiz (mantis #27503) that fixes a procedure-type that has
"char" as argumenttype instead of pchar/pansichar.

git-svn-id: trunk@29766 -
2015-02-20 10:50:40 +00:00
lacak
add4e800be fcl-db: sqlite: cosmetic + simplify code
git-svn-id: trunk@29765 -
2015-02-20 08:31:55 +00:00
lacak
0182f49b7b fcl-db: odbc: add support for ftFmtBCD parameters. Bind them as string to support BCD values with precision > 10^38 (max.supported by SQL_NUMERIC_STRUCT)
git-svn-id: trunk@29764 -
2015-02-20 06:35:26 +00:00
nickysn
a445b4730b + added breakpoint flags parameter to TGDBController.BreakpointInsert. The
supported flags are 'temporary' and 'hardware' breakpoint.

git-svn-id: trunk@29763 -
2015-02-19 22:04:31 +00:00
pierre
2095698a17 Use FPC_LOCALS_ARE_STACK_REG_RELATIVE macro to fix test for mips/mipsel
git-svn-id: trunk@29762 -
2015-02-19 16:56:02 +00:00
sergei
124592899f * fcl-xml: dropped using 'hack classes', which cause runtime errors if compiled with -CR. Resolves #27447.
git-svn-id: trunk@29761 -
2015-02-19 15:25:26 +00:00
marco
7350dae037 * bug #24317 wrapper function for eventsink.disconnect
git-svn-id: trunk@29760 -
2015-02-19 10:43:16 +00:00
lacak
17832b250b fcl-db: oracle: correct typo?
git-svn-id: trunk@29759 -
2015-02-19 09:45:38 +00:00
lacak
9fbf3494b4 fcl-db: implement setter and getter for TFloatField.AsBCD
git-svn-id: trunk@29758 -
2015-02-19 09:33:54 +00:00
pierre
97fccfd3bf Also display raw response inside GDB window if DEBUG conditional is set
git-svn-id: trunk@29756 -
2015-02-18 23:43:06 +00:00
pierre
6887eb739a Correctly display pchar longer than high(string) nito several lines in TGDBWindow.WriteText method
git-svn-id: trunk@29755 -
2015-02-18 23:42:31 +00:00
marcus
da3ce1a6d5 AROS: Added ELF structures to AmigaDOS
git-svn-id: trunk@29754 -
2015-02-18 19:46:46 +00:00
Károly Balogh
c421f4d91e do not include outputexedir in linker resname. it causes the path to be double-included when cross-compiling with -st and -FE on Liunuxes. also, be consistent between linking on host and target.
git-svn-id: trunk@29753 -
2015-02-18 14:09:15 +00:00
pierre
6ce8aeed27 + mips/mipsel libraries need PIC
git-svn-id: trunk@29752 -
2015-02-18 13:53:20 +00:00
lacak
2a2078e7f7 fcl-db: odbc: implements RefreshLastInsertID for autoincrementing columns.
Bug #16076

git-svn-id: trunk@29751 -
2015-02-18 11:02:07 +00:00
nickysn
a861bbc5ae - removed last_breakpoint_number from the gdb/mi interface. It didn't work in
older GDB versions and code in fpdebug.pas should no longer use it. Instead,
  it should use BreakpointInsert or WatchpointInsert for adding a breakpoint or
  watchpoint and getting its ID.

git-svn-id: trunk@29750 -
2015-02-18 05:47:49 +00:00
nickysn
c754fa35d2 * fixed the passing of the breakpoint number to the DoSelectSourceLine method,
in the gdb/mi interface, which fixes various features, such as showing a
  popup window with the old and new value of the variable, when stopping on a
  watch, etc.

git-svn-id: trunk@29749 -
2015-02-18 01:02:53 +00:00
nickysn
9f31c26996 * handle properly stopping on a watchpoint in the gdb/mi debugger
git-svn-id: trunk@29748 -
2015-02-17 23:07:23 +00:00
nickysn
186e86b353 * compilation of gdbcon.pp fixed after r29746
git-svn-id: trunk@29747 -
2015-02-17 23:02:02 +00:00
nickysn
df234bd7fe + added method WatchpointInsert to TGDBController, with a gdb/mi implementation
* all breakpoint and watchpoint adding now go through TGDBController and use
  the proper gdb/mi commands when compiled with the gdb/mi debugger

git-svn-id: trunk@29746 -
2015-02-17 22:49:31 +00:00
florian
d6e4af8279 + applied remaining patches of Torsten Grundke: adds gather instructions of avx2
git-svn-id: trunk@29745 -
2015-02-17 21:43:46 +00:00
nickysn
4f8b8da879 + added method BreakpointInsert to gdbcon, which supports the gdb/mi command for
adding breakpoints.
* use the new method for adding the breakpoint to FPC_BREAK_ERROR

git-svn-id: trunk@29744 -
2015-02-17 21:17:02 +00:00
florian
726a78be08 * fix possible range check errors, resolves #27461
git-svn-id: trunk@29743 -
2015-02-17 21:14:47 +00:00
florian
0dfbba86f3 * properly firstpass nodes when inc(...) is converted into ...:=...+x, resolves #27471
git-svn-id: trunk@29742 -
2015-02-17 21:14:45 +00:00
florian
aafec52a52 * allow multiple passes on as nodes
git-svn-id: trunk@29741 -
2015-02-17 21:14:43 +00:00
nickysn
eb6c73c3df * the common code to all "-exec" gdb/mi commands moved to a single method
git-svn-id: trunk@29740 -
2015-02-17 20:12:32 +00:00
pierre
f56990ee29 Revert aligntoptr to RTTIAlign rename
git-svn-id: trunk@29739 -
2015-02-17 07:35:31 +00:00
nickysn
44fb01eae6 + implemented get_current_frame and set_current_frame for gdb/mi
git-svn-id: trunk@29738 -
2015-02-17 02:03:18 +00:00
nickysn
f4e8c9da33 + added the gdb set commands from gdbint.pp to the gdb/mi interface
git-svn-id: trunk@29737 -
2015-02-17 01:43:39 +00:00
nickysn
a47a810475 + implemented gdb/mi backtraces
git-svn-id: trunk@29736 -
2015-02-17 00:59:39 +00:00
nickysn
88fc22a8a3 * fixed crash when stepping into code where no debug information is available
(can happen when using 'step into instruction' inside the assembly window)
* obtain the PC counter after a breakpoint has been hit (so that the assembly
  window shows the current instruction immediately after hitting a breakpoint)

git-svn-id: trunk@29735 -
2015-02-16 23:20:48 +00:00
nickysn
dc54903e01 * use gdb/mi command for setting tty
git-svn-id: trunk@29734 -
2015-02-16 22:11:25 +00:00
sergei
72315c9bee * Finalize units after printing the runtime error message. Rationale:
* Unit finalization executes arbitrarily large amount of code. Doing it when error occurred can cause
    other errors, overwriting the original error information.
  * Code that prints error message depends on everything and a kitchen sink (most notably, Unicode manager
    and lineinfo unit). Running it after finalizing units can be successful only by coincidence.
  * Last but not least, this sequence (ExitProc -> print RTE -> finalize units) is same as one used in Delphi.

git-svn-id: trunk@29733 -
2015-02-16 22:05:54 +00:00
nickysn
9eeef2581b * use a gdb/mi command for adding source directories
git-svn-id: trunk@29732 -
2015-02-16 21:41:06 +00:00
pierre
68c06ff84d Only print out cygwin DLL too old warning if using a cygwin GDB
git-svn-id: trunk@29731 -
2015-02-16 21:15:37 +00:00