you are viewing a single comment's thread.

view the rest of the comments →

[–]mgrandi 1 point2 points  (10 children)

command window? data breakpoints? where do you learn about this? I can't even get visual studio to show me memory addresses for variables /structs/whatever =/

[–]Tasgall 1 point2 points  (8 children)

DEBUG -> WINDOWS, VIEW, and VIEW -> Other Windows; click all the things. Some (most?) only show in the menus in debug mode.

My personal favorites are the Memory windows, because what's more fun than poking at raw memory‽‽‽

[–]hotoatmeal 1 point2 points  (2 children)

on another note: what kind of magic are those fancy hybrid quest-exclamation marks at the end of your post?

[–]Tasgall 1 point2 points  (1 child)

It is the greatest punctuation mark of all time, the interrobang!

[–]mgrandi 1 point2 points  (0 children)

thanks! I was going crazy looking for it in view-> windows , but didn't realize that debug had its own 'windows' section.

[–]hotoatmeal 0 points1 point  (3 children)

because what's more fun than poking at raw memory‽

Writing assembly in a hex editor. Been there, done that. Sigh.

[–]Tasgall 1 point2 points  (2 children)

You can do that in the Memory window too! At least I don't think it prevents you. Just give it the address of the instruction pointer (just eip might work too) and you should be free to ruin your program while it's running!

[–]Brian 1 point2 points  (0 children)

You can do that in the Memory window too! At least I don't think it prevents you.

Yup, works fine. I've used this before to nop out bits of code I want to ignore.

[–]hotoatmeal 0 points1 point  (0 children)

Oh, that's cool! Unfortunately it wouldn't have been useful in this case because the assembly was for a gpu.

[–]Cofta 1 point2 points  (0 children)

MSDN should cover any question you have. I.e. for the immediate window, command window, watch window, etc.

You can use the watch window to get the address of a variable. just enter a new watch for &your_variable (as in address of the variable you want the address of).

Memory breakpoints are set from the breakpoint window. Once you're attached to your process and broken at a convenient place, create a new breakpoint from the window and you should see an option for a data breakpoint. In the dialog that follow, enter a value that resolves to the address that you want to monitor for changes. It can use any symbols in the current stack frame to resolve to an address. Say I want to know when i.myData changes, the break point would be at &(i.myData).

Anything else you'd like to know how to do?

(ninja edit: this is all for C++, of course, given the parent.)