VerySleepy / verysleepy

Very Sleepy, a sampling CPU profiler for Windows
http://www.codersnotes.com/sleepy
GNU General Public License v2.0
1.07k stars 104 forks source link

Missing function names #79

Closed HuskyNator closed 3 years ago

HuskyNator commented 4 years ago

When profiling my .exe program, compiled using gcc (from mingw) with '-g' & 'Wall', I dont get function names for implemented functions, just addresses/numbers. All other functions (like memvmp) say 'source file [unknown]', while my own functions have just a blank in this field.

I've tried '-gdwarf-2' instead of '-g' yielding the same result.

I dont seem to be the only one with this problem, as seems from stackoverflow, however no clear solution was posted there.

brendanburkhart commented 4 years ago

I can't reproduce this for a simple C++ program on 64-bit Windows 10, compiled with gcc 9.3.0. Could you tell us a little more about the program you are compiling, and any other gcc flags you are using? Also what platform are you running on, what version of very sleepy you are using, and what version of gcc you have?

djdron commented 4 years ago

mingw symbols processed via drmingw project. you can build drmingw.dll with debug info, replace sleepy dll and debug.

HuskyNator commented 4 years ago

Sorry I dont fully understand djdron, The full arguments ill just show you by showingthe tasks im using in vscode, that might be simpler:

{
    "type": "shell",
    "label": "build hoekjec",
    "command": "C:/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin/gcc.exe",
    "args": [
        "${workspaceFolder}\\src\\*.c",
        "${workspaceFolder}\\src\\lijsten\\*.c",
        "${workspaceFolder}\\afbeeldingen\\Logo\\Logo.coff",
        "${workspaceFolder}\\lib\\*.a",
        "-g",
        "-Wall",
        "-m64", // 64 bit
        // "-O3",
        "-o${workspaceFolder}\\hoekjec.exe",
        "-I${workspaceFolder}\\include",
        "-L${workspaceFolder}\\lib",
        "-lglew32",
        "-lglfw3dll",
        "-lgdi32",
        "-lopengl32",
        "-DGLEW_STATIC"
        // "-mwindows"
    ],
    "options": {
        "cwd": "C:/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin"
    },
    "problemMatcher": [
        "$gcc"
    ],
    "group": {
        "kind": "build",
        "isDefault": true
    }
}

Im compiling my own opengl programming, written fully in C, additionally using GLFW & GLEW. On 64-bit windows 10, tried both version 0.90 and the appvoyer-notice prelrelease, using gcc 'version 8.1.0 built by MinGW-W64 project'. Not sure if that was useful information but hope it helped.

brendanburkhart commented 4 years ago

Not sure what the problem is, you seem to be doing everything right. GCC 8.1 is bit old, looks like that version is from 2018, but that really shouldn't matter. You don't see any of your functions with names at all? Not even main?

HuskyNator commented 4 years ago

I made a capture.sleepy file, as you can see a lot is missing including main: https://www.dropbox.com/s/06pm60fm1fzvm3g/capture.sleepy?dl=0 I could try with another binary if anyone has one correctly compiled lying about for me, as i have no clue if that may be a strange issue.

This is what im compiling by the way: https://github.com/HuskyNator/HoekjeC/tree/Sleepy_Debug With the task settings here: https://github.com/HuskyNator/HoekjeC/blob/Sleepy_Debug/.vscode/tasks.json

djdron commented 4 years ago

Sorry I dont fully understand djdron,

I mean you can build dynamic library - helper for sleepy which resolve function names and debug it and find a reason.

hero-clashes commented 3 years ago

for anyone that have the same problem just install the last version from the artifacts and it will work

CyberShadow commented 3 years ago

for anyone that have the same problem just install the last version from the artifacts and it will work

Thanks for letting us know. I assume that this problem should also not happen with the latest release: https://github.com/VerySleepy/verysleepy/releases

Please leave a comment or open a new issue if you encounter further problems. Thanks!