c52916f461Remember where each symbol was defined and where it was referenced. Write this information to the object file.
uz
2011-08-18 16:25:58 +00:00
2f9e7d2ca0Add reference counting to line infos. This allows better tracking of the ones that are actually used.
uz
2011-08-18 14:36:38 +00:00
bd233ac916Decrease the minimum size of a collection.
uz
2011-08-18 14:13:14 +00:00
c9ddc44ebeChange HT_Walk so that it can optionally be used to delete nodes from the hash table.
uz
2011-08-18 13:05:21 +00:00
862c0ba70eDon't use a separate Count field for the line info type.
uz
2011-08-18 12:35:43 +00:00
d3017665d2Replace single linked list of sections in a segment by a collection.
uz
2011-08-18 11:58:16 +00:00
2abd77ffe5Use correct syntax. The old did work but wasn't really right.
uz
2011-08-18 11:57:57 +00:00
11d46e93b2Export NewSpan() - this will be needed later.
uz
2011-08-18 11:57:17 +00:00
4160505c59Don't write out spans for line infos if no debug info is requested for the object file.
uz
2011-08-18 10:36:08 +00:00
ec6acb8606More changes to account for modules without debug info.
uz
2011-08-18 10:26:13 +00:00
0077e37182If a symbol is an import, the corresponding export does only have a debug symbol id if the module contains debug information.
uz
2011-08-18 10:13:11 +00:00
b76fc52c1bAdded an OBJ_HAS_DBGINFO macro.
uz
2011-08-18 10:08:56 +00:00
e53f4fa163Mark imports with a special type tag instead of relying on the export pointer being valid, because the export may not be available if the module was compiled without debug information.
uz
2011-08-18 10:04:01 +00:00
50adbf61f1Mark imports using "type=imp".
uz
2011-08-18 09:56:53 +00:00
ae0fcbf345Track cheap local symbols. Reduce initial collection size to one. This causes a small increase in allocations, but about 20% decrease in allocated memory. Looks like many of the collections are rather small.
uz
2011-08-17 21:34:26 +00:00
6aae186f7fAdded cc65_scope_byname.
uz
2011-08-17 21:20:10 +00:00
0d8e8a9533Added cc65_symbol_byscope.
uz
2011-08-17 19:12:59 +00:00
0ec9ebbfafAdded cc65_childscopes_byid.
uz
2011-08-17 19:00:34 +00:00
5edd1f7017Added several commands to display debug file items.
uz
2011-08-17 16:27:34 +00:00
115db59743Added cc65_line_bysource
uz
2011-08-17 16:08:26 +00:00
1d025a3230Added cc65_line_byid.
uz
2011-08-17 15:58:21 +00:00
1c7e4b483eShortened some of the function names.
uz
2011-08-17 15:55:44 +00:00
386100dadeRenamed a struct member.
uz
2011-08-17 15:50:53 +00:00
9724ed5506Added cc65_seginfo_byname.
uz
2011-08-17 15:26:40 +00:00
fa6b2e40fdAdded cc65_get_scopelist. Added a few statistics field to the DbgInfo structure.
uz
2011-08-17 15:18:22 +00:00
771695577dReplaced the old dbgtest program by a debug info shell.
uz
2011-08-16 22:37:01 +00:00
7d7667f782Handle imports correctly.
uz
2011-08-16 14:25:18 +00:00
3996725f44Write imports out to the debug info file. Add the id of the corresponding export.
uz
2011-08-16 13:58:59 +00:00
b7c4a4fe01Write imports out as debug symbols.
uz
2011-08-16 13:39:00 +00:00
cc1326c6c2Dump export and import ids.
uz
2011-08-16 12:53:48 +00:00
aa1a103154Track export ids of debug symbols and write the to the object file.
uz
2011-08-16 12:52:56 +00:00
63c53499beIf a debug symbol is an import, write out the import id.
uz
2011-08-16 12:33:19 +00:00
1917591b94Renamed variables for better readability.
uz
2011-08-16 12:08:43 +00:00
11be5d6261Handle the new symbol flags correctly. Changed - among other things - the data types of members in the management structures.
uz
2011-08-16 11:50:27 +00:00
7323035a89Do also write the im-/export flags to the symbol flags in an object file.
uz
2011-08-16 11:37:19 +00:00
2d23dffe06Added flags for im- and export.
uz
2011-08-16 11:34:46 +00:00
3e653f6266Many changes. Map spans instead of line infos into the address space. Quite some API changes. The test program is almost useless and has to be replaced.
uz
2011-08-15 21:46:39 +00:00
eadbb7dcb0Remove CollFirst in favour of CollAt.
uz
2011-08-15 17:57:26 +00:00
8d8c676be2Add cc65_idlist.
uz
2011-08-15 17:42:43 +00:00
51e918cdfeTrack the main scope of modules.
uz
2011-08-15 17:36:38 +00:00
34d393a76fFixed problems with the range check on 64 bit machines.
uz
2011-08-15 17:25:49 +00:00
aaa19a569dThe line number is now of type unsigned.
uz
2011-08-15 17:25:23 +00:00
b097b49a4aFixed even more problems with the range check.
uz
2011-08-15 17:23:44 +00:00
cd50385b72Fixed a problem with the range check.
uz
2011-08-15 17:19:05 +00:00
d02c1cc417Line number is now an unsigned
uz
2011-08-15 16:09:34 +00:00
d758b39dfcLine number is now an unsigned.
uz
2011-08-15 16:08:50 +00:00
da307b9a13Change the type of the line number from unsigned long to unsigned since the tools won't run on a 16 bit platform anyway. And if so, line numbers limited to 65535 are probably the least problem.
uz
2011-08-15 16:08:15 +00:00
7ed3fdc803Fixed range errors when negative numbers where used as bytes. This wasn't flagged by older ca65 versions because of errors in the range checks.
uz
2011-08-15 15:23:31 +00:00
6e32190caeA few measures to create slightly smaller object files.
uz
2011-08-14 20:06:14 +00:00
e7fe36399bGrow the line info collection as needed before actually adding items. This reduces memory consumption.
uz
2011-08-14 20:05:20 +00:00
17e2276f38Adapted to new line infos and spans as written to the object file by the assembler.
uz
2011-08-14 19:24:03 +00:00
b8549f0af8Complete redesign of line info generation. Uses spans instead of a fragment list as before.
uz
2011-08-14 19:23:16 +00:00
e67c802193Make the parameter for HT_GetKey const.
uz
2011-08-14 19:21:44 +00:00
27964254dcAdjust to recent changes in the hash modules.
uz
2011-08-12 16:22:28 +00:00
6b79f5bbb1Do also remove the Owner pointer from the HashNode making it ~50% of its original size.
uz
2011-08-12 16:18:56 +00:00
f571ec44aeRequire that the hash node must be the first element of the structure to be managed in a hash table. This gives smaller code and a ~25% size reduction of the HashNode structure which might become an advantage if many elements are hashed.
uz
2011-08-12 16:13:10 +00:00
762d4d9ea2Grow the Span collection before adding spans for the segments. This means that in most cases the colection will have the optimal size.
uz
2011-08-12 16:10:34 +00:00
b8d43cee42Tracked rename of hashstr -> hashfunc.
uz
2011-08-12 15:36:53 +00:00
b8e68bed95Renamed hashstr to hashfunc and added an integer hash function.
uz
2011-08-12 15:32:08 +00:00
434c818d20Fixed an error in the INFO line.
uz
2011-08-11 21:58:12 +00:00
54ffc25a53Removed an unused function.
uz
2011-08-11 21:23:37 +00:00
b4967d359fOutput spans to the debug info file.
uz
2011-08-11 17:11:45 +00:00
3e6f9a212bAccept the number of spans in the INFO line.
uz
2011-08-11 17:04:29 +00:00
9ecccaa69dMore work on the implementation of spans.
uz
2011-08-11 16:52:52 +00:00
efc59ff27bImplement some span API functions.
uz
2011-08-10 22:17:41 +00:00
d8feaf2e54Started to add spans.
uz
2011-08-10 21:17:45 +00:00
ebfa369319Postprocess module infos. Add new index for modules sorted by name.
uz
2011-08-10 20:44:20 +00:00
060b297a78Renamed DoneCollection -> CollDone and InitCollection -> CollInit.
uz
2011-08-10 14:20:45 +00:00
9d2538f12bPostprocess file infos. New function cc65_sourceinfo_bymodule.
uz
2011-08-10 14:08:18 +00:00
d9a35e9652Prepare the collection for storage of ids.
uz
2011-08-10 13:32:31 +00:00
07f795fa78Postprocess scope infos. New function cc65_scope_bymodule.
uz
2011-08-10 10:36:37 +00:00
3e42ba1a87Bump the version number. Fix line number counting. Resolve ids to pointers in several places.
uz
2011-08-10 10:13:31 +00:00
604f74c5c2Added processing of modules, libraries, etc. Many other changes for new debug info format.
uz
2011-08-09 19:11:38 +00:00
36c99befccOutput ids for line infos to the debug info file.
uz
2011-08-09 18:48:02 +00:00
a3ae02b5b7Use symbolic names when writing the scope type to the debug info file.
uz
2011-08-08 21:07:45 +00:00
067f6d2e27Much more work reading the new information.
uz
2011-08-08 21:07:13 +00:00
e9be9e3d63Use "lib" instead of "library".
uz
2011-08-08 17:18:52 +00:00
07cd427110Output information about the item counts in the debug info file.
uz
2011-08-08 17:15:18 +00:00
57e39e0e04Preparations for the new format.
uz
2011-08-07 21:08:45 +00:00
472c21d7ffSome improvements for spans.
uz
2011-08-07 20:01:40 +00:00
bf8f23d5f4Handle scopes with a label correctly. Add the label to the debug info file.
uz
2011-08-07 18:48:08 +00:00
8f969056e1Handle scopes with a label correctly.
uz
2011-08-07 18:47:38 +00:00
49b66ebd2bNew flag bit that tells if a scope has a label.
uz
2011-08-07 18:47:21 +00:00
af8fbf8d62Fox scopes that have a label (= .PROC), write the label to the debug information.
uz
2011-08-07 18:46:56 +00:00
c19491035bBump the version number of the generated debug file.
uz
2011-08-07 17:59:33 +00:00
17e9b81045Debug info: Make file info ids continous. Output modules that use a file.
uz
2011-08-07 13:15:24 +00:00
af3a5e6e15Output library information to the debug file.
uz
2011-08-07 11:33:28 +00:00
b418fdf985Removed the Next pointer which is no longer necessary.
uz
2011-08-06 12:32:10 +00:00
6172979c1cManage the segments in a collection.
uz
2011-08-05 13:59:26 +00:00
9f02a29dfaUse a collection to manage the segments.
uz
2011-08-05 13:45:33 +00:00
a17d11cba8Central management of the debug info base ids.
uz
2011-08-05 13:09:13 +00:00
a87d8ec233More aliases for attribute names.
uz
2011-08-05 12:34:08 +00:00
f912ea4010Introduce some shorter aliases for attribute names in the debug info file.
uz
2011-08-05 12:33:21 +00:00
317676d868Output module info.
uz
2011-08-05 12:09:11 +00:00
3593eb2869More work on scope suport.
uz
2011-08-04 18:47:01 +00:00
d1efe1af90Adjust code to C99 regarding the main function: Not returning anything in a main function with an int return type is identical to returning zero.
uz
2011-08-04 17:18:06 +00:00
2f75733e43Rearrange debug info output. Add scopes to the debug info.
uz
2011-08-04 15:58:54 +00:00
871873b1acRead Sections before Scopes, because the later will reference the former.
uz
2011-08-04 13:20:45 +00:00
04a0dafe25Use the Span structure also for scopes.
uz
2011-08-04 13:14:26 +00:00
e9d9ba92b0The spans do now contain the size of a span, no longer the end offset.
uz
2011-08-04 12:51:44 +00:00