Git Product home page Git Product logo

Comments (6)

Shizcow avatar Shizcow commented on June 9, 2024 2

When you talk to them let us know if they require us to use a new version of their dlls to get this correctly, after it is added. (likely no need)

@shaopeng-gh I am on the DIA SDK team and just pushed an update to MSVC yesterday reserving CV_CFL_GO as 0x16. The only things changed in upstream are:

  1. cvconst.h seeing the new value in CV_CFL_LANG. Although not current in the documentation This is now reflected in the documentation (even though it will not be available by name until released).
  2. dia2dumps.exe rendering the language as Go
  3. cvdump.exe rendering the language as Go

In order to use the new constant by name (CV_CFL_GO via cvconst.h), a dll update is not required. It's only a header, after all.

Currently, these changes are scheduled to release as a part of VS 17.7P1, which should be right around 6/1 (not yet scheduled). But the new enum value is certainly reserved in the meantime.

Question: Is the value being reserved in MSVC enough for you to move forward? Or do you actually need to reference the constant by name and have access to the changes in diadumps.exe/cvdump.exe? If you do need these changes, I can request to release sooner (in order to get @qmuntal and @dagood unblocked).

from binskim.

shaopeng-gh avatar shaopeng-gh commented on June 9, 2024 1

About the language identifier, should we coordinate with the DIA SDK team to add a new identifier? Or just adding it to binskim is enough? ---- I think I can answer this one, we are using the values from this link: https://learn.microsoft.com/en-us/visualstudio/debugger/debug-interface-access/cv-cfl-lang?view=vs-2022
so yes need the upstream to be updated first and we can update our enum accordingly. When you talk to them let us know if they require us to use a new version of their dlls to get this correctly, after it is added. (likely no need)

from binskim.

qmuntal avatar qmuntal commented on June 9, 2024

@shaopeng-gh how can I move this forward?

from binskim.

shaopeng-gh avatar shaopeng-gh commented on June 9, 2024

I have very limited knowledge about GoLang,
in Linux it will be ELF + dwarf debugging,
in Windows my understanding is it can be either PE + dwarf or PE + .PDB file
in Windows, which one is kind of "default", or more widely used,
For a most simple HelloWorld app, can you let me know command lines for budling PE + .PDB; and PE + dwarf
and does it support default Go compiler, gcc and clang, gccgo, Gollvm

I guess when facing Go binaries, Binskim would need to be able to understand what debugging it used and and load debugging correctly?

from binskim.

shaopeng-gh avatar shaopeng-gh commented on June 9, 2024

@shaopeng-gh how can I move this forward?

please check with @suvamM @michaelcfanning

from binskim.

dagood avatar dagood commented on June 9, 2024

Go doesn't support creating PDB files at all right now. Me and @qmuntal work on Go (for Microsoft), and we're trying to add PDB support to the Go compiler/toolset. A problem is that PDB files specify the language used (C++, C#, Rust, etc.). There is no way to specify "Go" with the current hard-coded set of values in the enum in microsoft/binskim.

If you want to see a PDB file before adding a Go entry to that enum, I'm afraid we have a circular dependency. 😄 We can't finish the work to produce a PDB until we're able to reserve an enum value for the Go language.

Hopefully this was just a matter of missing context, and this clears up the original issue.

from binskim.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.