{"id":17183417,"url":"https://github.com/rainers/cv2pdb","last_synced_at":"2025-05-15T11:08:45.520Z","repository":{"id":24139454,"uuid":"27528687","full_name":"rainers/cv2pdb","owner":"rainers","description":"converter of DMD CodeView/DWARF debug information to PDB files","archived":false,"fork":false,"pushed_at":"2025-02-19T16:43:33.000Z","size":6229,"stargazers_count":509,"open_issues_count":23,"forks_count":116,"subscribers_count":36,"default_branch":"master","last_synced_at":"2025-04-14T19:59:00.726Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"artistic-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rainers.png","metadata":{"files":{"readme":"README.MD","changelog":"CHANGES","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-12-04T07:28:08.000Z","updated_at":"2025-04-03T02:55:32.000Z","dependencies_parsed_at":"2024-01-12T03:36:25.891Z","dependency_job_id":"23d4e0fe-0660-48fb-a2dc-df5b720d4301","html_url":"https://github.com/rainers/cv2pdb","commit_stats":{"total_commits":209,"total_committers":16,"mean_commits":13.0625,"dds":0.6746411483253589,"last_synced_commit":"e3e9c455e5a3606ba3894901a79b74bdeb5a979a"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rainers%2Fcv2pdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rainers%2Fcv2pdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rainers%2Fcv2pdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rainers%2Fcv2pdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rainers","download_url":"https://codeload.github.com/rainers/cv2pdb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254328385,"owners_count":22052632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T00:40:32.574Z","updated_at":"2025-05-15T11:08:45.499Z","avatar_url":"https://github.com/rainers.png","language":"C++","funding_links":[],"categories":["\u003ca id=\"324874bb7c3ead94eae6f1fa1af4fb68\"\u003e\u003c/a\u003eDebug\u0026\u0026调试"],"sub_categories":["\u003ca id=\"d22bd989b2fdaeda14b64343b472dfb6\"\u003e\u003c/a\u003e工具"],"readme":"\r\nThis is the README file for cv2pdb, a \r\nconverter of DMD CodeView/DWARF debug information to PDB files\r\n\r\nCopyright (c) 2009-2010 by Rainer Schuetze, All Rights Reserved\r\n\r\nThe goal of this project is to make debugging of D applications that\r\nwere created with the Digital Mars DMD compiler, as seamless as possible \r\nin current versions of Visual Studio (i.e Visual Studio 2008 and \r\nVCExpress).\r\nAs a side effect, other applications might also benefit from the \r\nconverted debug information, like WinDbg or DMC.\r\n\r\nFeatures\r\n--------\r\n* conversion of DMD CodeView information to PDB file\r\n* conversion of DWARF information to PDB file\r\n* converted line number info allows setting breakpoints\r\n* display of variables, fields and objects in watch, local and auto window and in data tooltips\r\n* generates generic debug info for dynamic arrays, associative arrays and delegates\r\n* autoexp.dat allows convenient display of dynamic and associative arrays in watch windows\r\n* demangles function names for convenient display of callstack \r\n* also works debugging executables built with the Digital Mars C/C++ compiler DMC\r\n\r\nLicense information\r\n-------------------\r\n\r\nThis code is distributed under the term of the Artistic License 2.0.\r\nFor more details, see the full text of the license in the file LICENSE.\r\n\r\nThe file demangle.cpp is an adaption of denangle.d to C++ distributed with\r\nthe DMD compiler. It is placed into the Public Domain.\r\n\r\nThe file mscvpdb.h is taken from the WINE-project (http://www.winehq.org)\r\nand is distributed under the terms of the GNU Lesser General Public\r\nLicense as published by the Free Software Foundation; either\r\nversion 2.1 of the License, or (at your option) any later version.\r\nSee the file header for more details and \r\nhttp://www.gnu.org/licenses/lgpl.html for the full license.\r\n\r\nThe file dwarf.h is taken from the libdwarf project \r\n(http://reality.sgiweb.org/davea/dwarf.html)\r\nand is distributed under the terms of the GNU Lesser General Public\r\nLicense as published by the Free Software Foundation; either\r\nversion 2.1 of the License, or (at your option) any later version.\r\nSee the file header for more details and \r\nhttp://www.gnu.org/licenses/lgpl.html for the full license.\r\n\r\nInstallation\r\n------------\r\nSorry, there is no full featured installer available yet, you'll have\r\nto do some simple manual steps to use cv2pdb.\r\n\r\nSee the file INSTALL for further details.\r\n\r\nUsage\r\n-----\r\n\r\nQuick start:\r\n\r\nSimply run\r\n\r\n    cv2pdb debuggee.exe\r\n\r\non your executable to debug and start the debugger, e.g.\r\n\r\n    devenv debuggee.exe\r\n\r\nor\r\n\r\n    vcexpress debuggee.exe\r\n\r\nDescription:\r\n------------\r\n\r\ncv2pdb.exe is a command line tool which outputs its usage information\r\nif run without arguments:\r\n\r\n    usage: cv2pdb [-D\u003cversion\u003e|-C|-n|-e|-s\u003cC\u003e|-p\u003cembedded-pdb\u003e|-l\u003cdebug-link\u003e] \u003cexe-file\u003e [new-exe-file] [pdb-file]\r\n\r\nWith the `-D` option, you can specify the version of the DMD compiler\r\nyou are using. Unfortunately, this information is not embedded into\r\nthe debug information. The default is -D2.072. So far, this information \r\nis only needed to determine whether \"char[]\" or \"const char[]\" is \r\ntranslated to \"string\". \r\n\r\nStarting with DMD 2.043, assoiciative arrays have a slightly different\r\nimplementation, so debug information needs to be adjusted aswell. This changed\r\nagain with DMD 2.068. Version 2.072 started embedding source language 'D' into object files.\r\nUse -D 2.043 or higher to produce the matching debug info.\r\n\r\nOption `-C` tells the program, that you want to debug a program compiled\r\nwith DMC, the Digital Mars C/C++ compiler. It will disable some of the\r\nD specific functions and will enable adjustment of stack variable names.\r\n\r\nWith option `-n` demangling of symbols is disabled.\r\n\r\nOlder versions of the Visual Studio Debugger (up to VS 2012) don't work well if type\r\nand symbol names contain `.`. That's why cv2pdb replaces these characters with '@' by default.\r\nThis character can be configured to another character with the `-s`, so `-s.` will\r\nkeep symbol names as emitted by the compiler.\r\n\r\nThe first file name on the command line is expected to be the executable\r\nor dynamic library compiled by the DMD compiler and containing the \r\nCodeView debug information (-g option used when running dmd).\r\n\r\nIf no further file name is given, a PDB file will be created with the\r\nsame base name as the executable, but with extension \"pdb\", and the \r\nexecutable will be modified to redirect debuggers to this pdb-file instead\r\nof the original debug information.\r\n\r\nExample:\r\n\r\n    cv2pdb debuggee.exe\r\n\r\nIn an environment using make-like tools, it is often useful to create\r\na new file instead of modifying existing files. That way the file \r\nmodification time can be used to continue the build process at the\r\ncorrect step. \r\nIf another file name is specified, the new executable is written\r\nto this file and leaves the input executable unmodified.. The naming \r\nof the pdb-file will use the base name of the output file.\r\n\r\nExample:\r\n\r\n    cv2pdb debuggee.exe debuggee_pdb.exe\r\n\r\nLast but not least, the resulting pdb-file can be renamed by specifying\r\na third file name.\r\n\r\nExample:\r\n\r\n    cv2pdb debuggee.exe debuggee_pdb.exe debug.pdb\r\n\r\nIf you plan to move the excutable and PDB file to another computer, it might be helpful\r\nto change the path or file reference that is embedded into the converted binary. `-p` allows\r\nto replace the absolute path of the PDB file with any other file name irrespective of the\r\nactually generated PDB file and without making the file reference absolute.\r\n\r\nIf the debug information is located in a separate file, use the `-l` option to specify\r\na link to the file with the debug information. If the image has the `.gnu_debuglink` section,\r\nthe link will be retrieved from the section and the `-l` option is not required.\r\nThe debug information file will be loaded from the same directory where the image file is located.\r\nIf there is no file there, it will be loaded from `.debug` subdirectory.\r\n\r\nExample:\r\n\r\n    cv2pdb -ldebuggee.debug debuggee.exe\r\n\r\nChanges\r\n-------\r\n\r\nFor documentation on the changes between this version and\r\nprevious versions, please see the file CHANGES.\r\n\r\nFeedback\r\n--------\r\nThe project home for cv2pdb is here:\r\n\r\n    https://github.com/rainers/cv2pdb\r\n\r\nThere's an issue tracker, where you can leave your comments and suggestions.\r\n\r\nHave fun,\r\nRainer Schuetze\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frainers%2Fcv2pdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frainers%2Fcv2pdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frainers%2Fcv2pdb/lists"}